'use strict';

require('yly-form-source/lib/yly-form-constants');
var manage = require('@/api/manage');
var require$$0 = require('vue');
var draggable = require('vuedraggable');
var cloneDeep = require('lodash/cloneDeep');
var debounce = require('lodash/debounce');

var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};

function getDefaultExportFromCjs (x) {
	return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
}

var defineProperty$b = {exports: {}};

var check = function (it) {
    return it && it.Math === Math && it;
};
var globalThis_1 = check(typeof globalThis == 'object' && globalThis) || check(typeof window == 'object' && window) || check(typeof self == 'object' && self) || check(typeof commonjsGlobal == 'object' && commonjsGlobal) || check(typeof commonjsGlobal == 'object' && commonjsGlobal) || (function () {
    return this;
})() || Function('return this')();
getDefaultExportFromCjs(globalThis_1);

var fails$q = function (exec) {
    try {
        return !!exec();
    } catch (error) {
        return true;
    }
};
getDefaultExportFromCjs(fails$q);

var fails$p = fails$q;
var functionBindNative = !fails$p(function () {
    var test = (function () {}).bind();
    return typeof test != 'function' || test.hasOwnProperty('prototype');
});
getDefaultExportFromCjs(functionBindNative);

var NATIVE_BIND$3 = functionBindNative;
var FunctionPrototype$3 = Function.prototype;
var apply$5 = FunctionPrototype$3.apply;
var call$i = FunctionPrototype$3.call;
var functionApply = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND$3 ? call$i.bind(apply$5) : function () {
    return call$i.apply(apply$5, arguments);
});
getDefaultExportFromCjs(functionApply);

var NATIVE_BIND$2 = functionBindNative;
var FunctionPrototype$2 = Function.prototype;
var call$h = FunctionPrototype$2.call;
var uncurryThisWithBind = NATIVE_BIND$2 && FunctionPrototype$2.bind.bind(call$h, call$h);
var functionUncurryThis = NATIVE_BIND$2 ? uncurryThisWithBind : function (fn) {
    return function () {
        return call$h.apply(fn, arguments);
    };
};
getDefaultExportFromCjs(functionUncurryThis);

var uncurryThis$p = functionUncurryThis;
var toString$b = uncurryThis$p(({}).toString);
var stringSlice$2 = uncurryThis$p(('').slice);
var classofRaw$2 = function (it) {
    return stringSlice$2(toString$b(it), 8, -1);
};
getDefaultExportFromCjs(classofRaw$2);

var classofRaw$1 = classofRaw$2;
var uncurryThis$o = functionUncurryThis;
var functionUncurryThisClause = function (fn) {
    if (classofRaw$1(fn) === 'Function') return uncurryThis$o(fn);
};
getDefaultExportFromCjs(functionUncurryThisClause);

var documentAll = typeof document == 'object' && document.all;
var isCallable$j = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) {
    return typeof argument == 'function' || argument === documentAll;
} : function (argument) {
    return typeof argument == 'function';
};
getDefaultExportFromCjs(isCallable$j);

var objectGetOwnPropertyDescriptor = {};

var fails$o = fails$q;
var descriptors = !fails$o(function () {
    return Object.defineProperty({}, 1, {
        get: function () {
            return 7;
        }
    })[1] !== 7;
});
getDefaultExportFromCjs(descriptors);

var NATIVE_BIND$1 = functionBindNative;
var call$g = Function.prototype.call;
var functionCall = NATIVE_BIND$1 ? call$g.bind(call$g) : function () {
    return call$g.apply(call$g, arguments);
};
getDefaultExportFromCjs(functionCall);

var objectPropertyIsEnumerable = {};

var $propertyIsEnumerable$1 = ({}).propertyIsEnumerable;
var getOwnPropertyDescriptor$7 = Object.getOwnPropertyDescriptor;
var NASHORN_BUG = getOwnPropertyDescriptor$7 && !$propertyIsEnumerable$1.call({
    1: 2
}, 1);
objectPropertyIsEnumerable.f = NASHORN_BUG ? function propertyIsEnumerable(V) {
    var descriptor = getOwnPropertyDescriptor$7(this, V);
    return !!descriptor && descriptor.enumerable;
} : $propertyIsEnumerable$1;

var createPropertyDescriptor$7 = function (bitmap, value) {
    return {
        enumerable: !(bitmap & 1),
        configurable: !(bitmap & 2),
        writable: !(bitmap & 4),
        value: value
    };
};
getDefaultExportFromCjs(createPropertyDescriptor$7);

var uncurryThis$n = functionUncurryThis;
var fails$n = fails$q;
var classof$c = classofRaw$2;
var $Object$4 = Object;
var split = uncurryThis$n(('').split);
var indexedObject = fails$n(function () {
    return !$Object$4('z').propertyIsEnumerable(0);
}) ? function (it) {
    return classof$c(it) === 'String' ? split(it, '') : $Object$4(it);
} : $Object$4;
getDefaultExportFromCjs(indexedObject);

var isNullOrUndefined$4 = function (it) {
    return it === null || it === undefined;
};
getDefaultExportFromCjs(isNullOrUndefined$4);

var isNullOrUndefined$3 = isNullOrUndefined$4;
var $TypeError$f = TypeError;
var requireObjectCoercible$7 = function (it) {
    if (isNullOrUndefined$3(it)) throw new $TypeError$f("Can't call method on " + it);
    return it;
};
getDefaultExportFromCjs(requireObjectCoercible$7);

var IndexedObject$1 = indexedObject;
var requireObjectCoercible$6 = requireObjectCoercible$7;
var toIndexedObject$a = function (it) {
    return IndexedObject$1(requireObjectCoercible$6(it));
};
getDefaultExportFromCjs(toIndexedObject$a);

var isCallable$i = isCallable$j;
var isObject$f = function (it) {
    return typeof it == 'object' ? it !== null : isCallable$i(it);
};
getDefaultExportFromCjs(isObject$f);

var path$f = {};
getDefaultExportFromCjs(path$f);

var path$e = path$f;
var globalThis$n = globalThis_1;
var isCallable$h = isCallable$j;
var aFunction = function (variable) {
    return isCallable$h(variable) ? variable : undefined;
};
var getBuiltIn$e = function (namespace, method) {
    return arguments.length < 2 ? aFunction(path$e[namespace]) || aFunction(globalThis$n[namespace]) : path$e[namespace] && path$e[namespace][method] || globalThis$n[namespace] && globalThis$n[namespace][method];
};
getDefaultExportFromCjs(getBuiltIn$e);

var uncurryThis$m = functionUncurryThis;
var objectIsPrototypeOf = uncurryThis$m(({}).isPrototypeOf);
getDefaultExportFromCjs(objectIsPrototypeOf);

var globalThis$m = globalThis_1;
var navigator = globalThis$m.navigator;
var userAgent$5 = navigator && navigator.userAgent;
var environmentUserAgent = userAgent$5 ? String(userAgent$5) : '';
getDefaultExportFromCjs(environmentUserAgent);

var globalThis$l = globalThis_1;
var userAgent$4 = environmentUserAgent;
var process$4 = globalThis$l.process;
var Deno$1 = globalThis$l.Deno;
var versions = process$4 && process$4.versions || Deno$1 && Deno$1.version;
var v8 = versions && versions.v8;
var match, version;
if (v8) {
    match = v8.split('.');
    version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);
}
if (!version && userAgent$4) {
    match = userAgent$4.match(/Edge\/(\d+)/);
    if (!match || match[1] >= 74) {
        match = userAgent$4.match(/Chrome\/(\d+)/);
        if (match) version = +match[1];
    }
}
var environmentV8Version = version;
getDefaultExportFromCjs(environmentV8Version);

var V8_VERSION$3 = environmentV8Version;
var fails$m = fails$q;
var globalThis$k = globalThis_1;
var $String$5 = globalThis$k.String;
var symbolConstructorDetection = !!Object.getOwnPropertySymbols && !fails$m(function () {
    var symbol = Symbol('symbol detection');
    return !$String$5(symbol) || !(Object(symbol) instanceof Symbol) || !Symbol.sham && V8_VERSION$3 && V8_VERSION$3 < 41;
});
getDefaultExportFromCjs(symbolConstructorDetection);

var NATIVE_SYMBOL$5 = symbolConstructorDetection;
var useSymbolAsUid = NATIVE_SYMBOL$5 && !Symbol.sham && typeof Symbol.iterator == 'symbol';
getDefaultExportFromCjs(useSymbolAsUid);

var getBuiltIn$d = getBuiltIn$e;
var isCallable$g = isCallable$j;
var isPrototypeOf$c = objectIsPrototypeOf;
var USE_SYMBOL_AS_UID$1 = useSymbolAsUid;
var $Object$3 = Object;
var isSymbol$5 = USE_SYMBOL_AS_UID$1 ? function (it) {
    return typeof it == 'symbol';
} : function (it) {
    var $Symbol = getBuiltIn$d('Symbol');
    return isCallable$g($Symbol) && isPrototypeOf$c($Symbol.prototype, $Object$3(it));
};
getDefaultExportFromCjs(isSymbol$5);

var $String$4 = String;
var tryToString$5 = function (argument) {
    try {
        return $String$4(argument);
    } catch (error) {
        return 'Object';
    }
};
getDefaultExportFromCjs(tryToString$5);

var isCallable$f = isCallable$j;
var tryToString$4 = tryToString$5;
var $TypeError$e = TypeError;
var aCallable$b = function (argument) {
    if (isCallable$f(argument)) return argument;
    throw new $TypeError$e(tryToString$4(argument) + ' is not a function');
};
getDefaultExportFromCjs(aCallable$b);

var aCallable$a = aCallable$b;
var isNullOrUndefined$2 = isNullOrUndefined$4;
var getMethod$3 = function (V, P) {
    var func = V[P];
    return isNullOrUndefined$2(func) ? undefined : aCallable$a(func);
};
getDefaultExportFromCjs(getMethod$3);

var call$f = functionCall;
var isCallable$e = isCallable$j;
var isObject$e = isObject$f;
var $TypeError$d = TypeError;
var ordinaryToPrimitive$1 = function (input, pref) {
    var fn, val;
    if (pref === 'string' && isCallable$e(fn = input.toString) && !isObject$e(val = call$f(fn, input))) return val;
    if (isCallable$e(fn = input.valueOf) && !isObject$e(val = call$f(fn, input))) return val;
    if (pref !== 'string' && isCallable$e(fn = input.toString) && !isObject$e(val = call$f(fn, input))) return val;
    throw new $TypeError$d("Can't convert object to primitive value");
};
getDefaultExportFromCjs(ordinaryToPrimitive$1);

var sharedStore = {exports: {}};

var isPure = true;
getDefaultExportFromCjs(isPure);

var globalThis$j = globalThis_1;
var defineProperty$a = Object.defineProperty;
var defineGlobalProperty$1 = function (key, value) {
    try {
        defineProperty$a(globalThis$j, key, {
            value: value,
            configurable: true,
            writable: true
        });
    } catch (error) {
        globalThis$j[key] = value;
    }
    return value;
};
getDefaultExportFromCjs(defineGlobalProperty$1);

var globalThis$i = globalThis_1;
var defineGlobalProperty = defineGlobalProperty$1;
var SHARED = '__core-js_shared__';
var store$3 = sharedStore.exports = globalThis$i[SHARED] || defineGlobalProperty(SHARED, {});
(store$3.versions || (store$3.versions = [])).push({
    version: '3.38.1',
    mode: 'pure' ,
    copyright: '© 2014-2024 Denis Pushkarev (zloirock.ru)',
    license: 'https://github.com/zloirock/core-js/blob/v3.38.1/LICENSE',
    source: 'https://github.com/zloirock/core-js'
});
var sharedStoreExports = sharedStore.exports;
getDefaultExportFromCjs(sharedStoreExports);

var store$2 = sharedStoreExports;
var shared$7 = function (key, value) {
    return store$2[key] || (store$2[key] = value || ({}));
};
getDefaultExportFromCjs(shared$7);

var requireObjectCoercible$5 = requireObjectCoercible$7;
var $Object$2 = Object;
var toObject$9 = function (argument) {
    return $Object$2(requireObjectCoercible$5(argument));
};
getDefaultExportFromCjs(toObject$9);

var uncurryThis$l = functionUncurryThis;
var toObject$8 = toObject$9;
var hasOwnProperty = uncurryThis$l(({}).hasOwnProperty);
var hasOwnProperty_1 = Object.hasOwn || (function hasOwn(it, key) {
    return hasOwnProperty(toObject$8(it), key);
});
getDefaultExportFromCjs(hasOwnProperty_1);

var uncurryThis$k = functionUncurryThis;
var id = 0;
var postfix = Math.random();
var toString$a = uncurryThis$k((1.0).toString);
var uid$3 = function (key) {
    return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString$a(++id + postfix, 36);
};
getDefaultExportFromCjs(uid$3);

var globalThis$h = globalThis_1;
var shared$6 = shared$7;
var hasOwn$e = hasOwnProperty_1;
var uid$2 = uid$3;
var NATIVE_SYMBOL$4 = symbolConstructorDetection;
var USE_SYMBOL_AS_UID = useSymbolAsUid;
var Symbol$3 = globalThis$h.Symbol;
var WellKnownSymbolsStore$2 = shared$6('wks');
var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol$3['for'] || Symbol$3 : Symbol$3 && Symbol$3.withoutSetter || uid$2;
var wellKnownSymbol$o = function (name) {
    if (!hasOwn$e(WellKnownSymbolsStore$2, name)) {
        WellKnownSymbolsStore$2[name] = NATIVE_SYMBOL$4 && hasOwn$e(Symbol$3, name) ? Symbol$3[name] : createWellKnownSymbol('Symbol.' + name);
    }
    return WellKnownSymbolsStore$2[name];
};
getDefaultExportFromCjs(wellKnownSymbol$o);

var call$e = functionCall;
var isObject$d = isObject$f;
var isSymbol$4 = isSymbol$5;
var getMethod$2 = getMethod$3;
var ordinaryToPrimitive = ordinaryToPrimitive$1;
var wellKnownSymbol$n = wellKnownSymbol$o;
var $TypeError$c = TypeError;
var TO_PRIMITIVE = wellKnownSymbol$n('toPrimitive');
var toPrimitive$8 = function (input, pref) {
    if (!isObject$d(input) || isSymbol$4(input)) return input;
    var exoticToPrim = getMethod$2(input, TO_PRIMITIVE);
    var result;
    if (exoticToPrim) {
        if (pref === undefined) pref = 'default';
        result = call$e(exoticToPrim, input, pref);
        if (!isObject$d(result) || isSymbol$4(result)) return result;
        throw new $TypeError$c("Can't convert object to primitive value");
    }
    if (pref === undefined) pref = 'number';
    return ordinaryToPrimitive(input, pref);
};
getDefaultExportFromCjs(toPrimitive$8);

var toPrimitive$7 = toPrimitive$8;
var isSymbol$3 = isSymbol$5;
var toPropertyKey$4 = function (argument) {
    var key = toPrimitive$7(argument, 'string');
    return isSymbol$3(key) ? key : key + '';
};
getDefaultExportFromCjs(toPropertyKey$4);

var globalThis$g = globalThis_1;
var isObject$c = isObject$f;
var document$3 = globalThis$g.document;
var EXISTS$1 = isObject$c(document$3) && isObject$c(document$3.createElement);
var documentCreateElement$1 = function (it) {
    return EXISTS$1 ? document$3.createElement(it) : {};
};
getDefaultExportFromCjs(documentCreateElement$1);

var DESCRIPTORS$f = descriptors;
var fails$l = fails$q;
var createElement$1 = documentCreateElement$1;
var ie8DomDefine = !DESCRIPTORS$f && !fails$l(function () {
    return Object.defineProperty(createElement$1('div'), 'a', {
        get: function () {
            return 7;
        }
    }).a !== 7;
});
getDefaultExportFromCjs(ie8DomDefine);

var DESCRIPTORS$e = descriptors;
var call$d = functionCall;
var propertyIsEnumerableModule$1 = objectPropertyIsEnumerable;
var createPropertyDescriptor$6 = createPropertyDescriptor$7;
var toIndexedObject$9 = toIndexedObject$a;
var toPropertyKey$3 = toPropertyKey$4;
var hasOwn$d = hasOwnProperty_1;
var IE8_DOM_DEFINE$1 = ie8DomDefine;
var $getOwnPropertyDescriptor$2 = Object.getOwnPropertyDescriptor;
objectGetOwnPropertyDescriptor.f = DESCRIPTORS$e ? $getOwnPropertyDescriptor$2 : function getOwnPropertyDescriptor(O, P) {
    O = toIndexedObject$9(O);
    P = toPropertyKey$3(P);
    if (IE8_DOM_DEFINE$1) try {
        return $getOwnPropertyDescriptor$2(O, P);
    } catch (error) {}
    if (hasOwn$d(O, P)) return createPropertyDescriptor$6(!call$d(propertyIsEnumerableModule$1.f, O, P), O[P]);
};

var fails$k = fails$q;
var isCallable$d = isCallable$j;
var replacement = /#|\.prototype\./;
var isForced$2 = function (feature, detection) {
    var value = data[normalize(feature)];
    return value === POLYFILL ? true : value === NATIVE ? false : isCallable$d(detection) ? fails$k(detection) : !!detection;
};
var normalize = isForced$2.normalize = function (string) {
    return String(string).replace(replacement, '.').toLowerCase();
};
var data = isForced$2.data = {};
var NATIVE = isForced$2.NATIVE = 'N';
var POLYFILL = isForced$2.POLYFILL = 'P';
var isForced_1 = isForced$2;
getDefaultExportFromCjs(isForced_1);

var uncurryThis$j = functionUncurryThisClause;
var aCallable$9 = aCallable$b;
var NATIVE_BIND = functionBindNative;
var bind$6 = uncurryThis$j(uncurryThis$j.bind);
var functionBindContext = function (fn, that) {
    aCallable$9(fn);
    return that === undefined ? fn : NATIVE_BIND ? bind$6(fn, that) : function () {
        return fn.apply(that, arguments);
    };
};
getDefaultExportFromCjs(functionBindContext);

var objectDefineProperty = {};

var DESCRIPTORS$d = descriptors;
var fails$j = fails$q;
var v8PrototypeDefineBug = DESCRIPTORS$d && fails$j(function () {
    return Object.defineProperty(function () {}, 'prototype', {
        value: 42,
        writable: false
    }).prototype !== 42;
});
getDefaultExportFromCjs(v8PrototypeDefineBug);

var isObject$b = isObject$f;
var $String$3 = String;
var $TypeError$b = TypeError;
var anObject$a = function (argument) {
    if (isObject$b(argument)) return argument;
    throw new $TypeError$b($String$3(argument) + ' is not an object');
};
getDefaultExportFromCjs(anObject$a);

var DESCRIPTORS$c = descriptors;
var IE8_DOM_DEFINE = ie8DomDefine;
var V8_PROTOTYPE_DEFINE_BUG$1 = v8PrototypeDefineBug;
var anObject$9 = anObject$a;
var toPropertyKey$2 = toPropertyKey$4;
var $TypeError$a = TypeError;
var $defineProperty$1 = Object.defineProperty;
var $getOwnPropertyDescriptor$1 = Object.getOwnPropertyDescriptor;
var ENUMERABLE = 'enumerable';
var CONFIGURABLE$1 = 'configurable';
var WRITABLE = 'writable';
objectDefineProperty.f = DESCRIPTORS$c ? V8_PROTOTYPE_DEFINE_BUG$1 ? function defineProperty(O, P, Attributes) {
    anObject$9(O);
    P = toPropertyKey$2(P);
    anObject$9(Attributes);
    if (typeof O === 'function' && P === 'prototype' && ('value' in Attributes) && (WRITABLE in Attributes) && !Attributes[WRITABLE]) {
        var current = $getOwnPropertyDescriptor$1(O, P);
        if (current && current[WRITABLE]) {
            O[P] = Attributes.value;
            Attributes = {
                configurable: (CONFIGURABLE$1 in Attributes) ? Attributes[CONFIGURABLE$1] : current[CONFIGURABLE$1],
                enumerable: (ENUMERABLE in Attributes) ? Attributes[ENUMERABLE] : current[ENUMERABLE],
                writable: false
            };
        }
    }
    return $defineProperty$1(O, P, Attributes);
} : $defineProperty$1 : function defineProperty(O, P, Attributes) {
    anObject$9(O);
    P = toPropertyKey$2(P);
    anObject$9(Attributes);
    if (IE8_DOM_DEFINE) try {
        return $defineProperty$1(O, P, Attributes);
    } catch (error) {}
    if (('get' in Attributes) || ('set' in Attributes)) throw new $TypeError$a('Accessors not supported');
    if (('value' in Attributes)) O[P] = Attributes.value;
    return O;
};

var DESCRIPTORS$b = descriptors;
var definePropertyModule$4 = objectDefineProperty;
var createPropertyDescriptor$5 = createPropertyDescriptor$7;
var createNonEnumerableProperty$7 = DESCRIPTORS$b ? function (object, key, value) {
    return definePropertyModule$4.f(object, key, createPropertyDescriptor$5(1, value));
} : function (object, key, value) {
    object[key] = value;
    return object;
};
getDefaultExportFromCjs(createNonEnumerableProperty$7);

var globalThis$f = globalThis_1;
var apply$4 = functionApply;
var uncurryThis$i = functionUncurryThisClause;
var isCallable$c = isCallable$j;
var getOwnPropertyDescriptor$6 = objectGetOwnPropertyDescriptor.f;
var isForced$1 = isForced_1;
var path$d = path$f;
var bind$5 = functionBindContext;
var createNonEnumerableProperty$6 = createNonEnumerableProperty$7;
var hasOwn$c = hasOwnProperty_1;
var wrapConstructor = function (NativeConstructor) {
    var Wrapper = function (a, b, c) {
        if (this instanceof Wrapper) {
            switch (arguments.length) {
                case 0:
                    return new NativeConstructor();
                case 1:
                    return new NativeConstructor(a);
                case 2:
                    return new NativeConstructor(a, b);
            }
            return new NativeConstructor(a, b, c);
        }
        return apply$4(NativeConstructor, this, arguments);
    };
    Wrapper.prototype = NativeConstructor.prototype;
    return Wrapper;
};
var _export = function (options, source) {
    var TARGET = options.target;
    var GLOBAL = options.global;
    var STATIC = options.stat;
    var PROTO = options.proto;
    var nativeSource = GLOBAL ? globalThis$f : STATIC ? globalThis$f[TARGET] : globalThis$f[TARGET] && globalThis$f[TARGET].prototype;
    var target = GLOBAL ? path$d : path$d[TARGET] || createNonEnumerableProperty$6(path$d, TARGET, {})[TARGET];
    var targetPrototype = target.prototype;
    var FORCED, USE_NATIVE, VIRTUAL_PROTOTYPE;
    var key, sourceProperty, targetProperty, nativeProperty, resultProperty, descriptor;
    for (key in source) {
        FORCED = isForced$1(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);
        USE_NATIVE = !FORCED && nativeSource && hasOwn$c(nativeSource, key);
        targetProperty = target[key];
        if (USE_NATIVE) if (options.dontCallGetSet) {
            descriptor = getOwnPropertyDescriptor$6(nativeSource, key);
            nativeProperty = descriptor && descriptor.value;
        } else nativeProperty = nativeSource[key];
        sourceProperty = USE_NATIVE && nativeProperty ? nativeProperty : source[key];
        if (!FORCED && !PROTO && typeof targetProperty == typeof sourceProperty) continue;
        if (options.bind && USE_NATIVE) resultProperty = bind$5(sourceProperty, globalThis$f); else if (options.wrap && USE_NATIVE) resultProperty = wrapConstructor(sourceProperty); else if (PROTO && isCallable$c(sourceProperty)) resultProperty = uncurryThis$i(sourceProperty); else resultProperty = sourceProperty;
        if (options.sham || sourceProperty && sourceProperty.sham || targetProperty && targetProperty.sham) {
            createNonEnumerableProperty$6(resultProperty, 'sham', true);
        }
        createNonEnumerableProperty$6(target, key, resultProperty);
        if (PROTO) {
            VIRTUAL_PROTOTYPE = TARGET + 'Prototype';
            if (!hasOwn$c(path$d, VIRTUAL_PROTOTYPE)) {
                createNonEnumerableProperty$6(path$d, VIRTUAL_PROTOTYPE, {});
            }
            createNonEnumerableProperty$6(path$d[VIRTUAL_PROTOTYPE], key, sourceProperty);
            if (options.real && targetPrototype && (FORCED || !targetPrototype[key])) {
                createNonEnumerableProperty$6(targetPrototype, key, sourceProperty);
            }
        }
    }
};
getDefaultExportFromCjs(_export);

var $$D = _export;
var DESCRIPTORS$a = descriptors;
var defineProperty$9 = objectDefineProperty.f;
$$D({
    target: 'Object',
    stat: true,
    forced: Object.defineProperty !== defineProperty$9,
    sham: !DESCRIPTORS$a
}, {
    defineProperty: defineProperty$9
});

var path$c = path$f;
var Object$3 = path$c.Object;
var defineProperty$8 = defineProperty$b.exports = function defineProperty(it, key, desc) {
    return Object$3.defineProperty(it, key, desc);
};
if (Object$3.defineProperty.sham) defineProperty$8.sham = true;
var definePropertyExports = defineProperty$b.exports;
getDefaultExportFromCjs(definePropertyExports);

var parent$I = definePropertyExports;
var defineProperty$7 = parent$I;
getDefaultExportFromCjs(defineProperty$7);

var parent$H = defineProperty$7;
var defineProperty$6 = parent$H;
getDefaultExportFromCjs(defineProperty$6);

var parent$G = defineProperty$6;
var defineProperty$5 = parent$G;
getDefaultExportFromCjs(defineProperty$5);

var defineProperty$4 = defineProperty$5;
var _Object$defineProperty = getDefaultExportFromCjs(defineProperty$4);

var classof$b = classofRaw$2;
var isArray$6 = Array.isArray || (function isArray(argument) {
    return classof$b(argument) === 'Array';
});
getDefaultExportFromCjs(isArray$6);

var ceil$1 = Math.ceil;
var floor = Math.floor;
var mathTrunc = Math.trunc || (function trunc(x) {
    var n = +x;
    return (n > 0 ? floor : ceil$1)(n);
});
getDefaultExportFromCjs(mathTrunc);

var trunc = mathTrunc;
var toIntegerOrInfinity$4 = function (argument) {
    var number = +argument;
    return number !== number || number === 0 ? 0 : trunc(number);
};
getDefaultExportFromCjs(toIntegerOrInfinity$4);

var toIntegerOrInfinity$3 = toIntegerOrInfinity$4;
var min$1 = Math.min;
var toLength$2 = function (argument) {
    var len = toIntegerOrInfinity$3(argument);
    return len > 0 ? min$1(len, 0x1FFFFFFFFFFFFF) : 0;
};
getDefaultExportFromCjs(toLength$2);

var toLength$1 = toLength$2;
var lengthOfArrayLike$6 = function (obj) {
    return toLength$1(obj.length);
};
getDefaultExportFromCjs(lengthOfArrayLike$6);

var $TypeError$9 = TypeError;
var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;
var doesNotExceedSafeInteger$2 = function (it) {
    if (it > MAX_SAFE_INTEGER) throw $TypeError$9('Maximum allowed index exceeded');
    return it;
};
getDefaultExportFromCjs(doesNotExceedSafeInteger$2);

var DESCRIPTORS$9 = descriptors;
var definePropertyModule$3 = objectDefineProperty;
var createPropertyDescriptor$4 = createPropertyDescriptor$7;
var createProperty$3 = function (object, key, value) {
    if (DESCRIPTORS$9) definePropertyModule$3.f(object, key, createPropertyDescriptor$4(0, value)); else object[key] = value;
};
getDefaultExportFromCjs(createProperty$3);

var wellKnownSymbol$m = wellKnownSymbol$o;
var TO_STRING_TAG$3 = wellKnownSymbol$m('toStringTag');
var test$1 = {};
test$1[TO_STRING_TAG$3] = 'z';
var toStringTagSupport = String(test$1) === '[object z]';
getDefaultExportFromCjs(toStringTagSupport);

var TO_STRING_TAG_SUPPORT$2 = toStringTagSupport;
var isCallable$b = isCallable$j;
var classofRaw = classofRaw$2;
var wellKnownSymbol$l = wellKnownSymbol$o;
var TO_STRING_TAG$2 = wellKnownSymbol$l('toStringTag');
var $Object$1 = Object;
var CORRECT_ARGUMENTS = classofRaw((function () {
    return arguments;
})()) === 'Arguments';
var tryGet = function (it, key) {
    try {
        return it[key];
    } catch (error) {}
};
var classof$a = TO_STRING_TAG_SUPPORT$2 ? classofRaw : function (it) {
    var O, tag, result;
    return it === undefined ? 'Undefined' : it === null ? 'Null' : typeof (tag = tryGet(O = $Object$1(it), TO_STRING_TAG$2)) == 'string' ? tag : CORRECT_ARGUMENTS ? classofRaw(O) : (result = classofRaw(O)) === 'Object' && isCallable$b(O.callee) ? 'Arguments' : result;
};
getDefaultExportFromCjs(classof$a);

var uncurryThis$h = functionUncurryThis;
var isCallable$a = isCallable$j;
var store$1 = sharedStoreExports;
var functionToString = uncurryThis$h(Function.toString);
if (!isCallable$a(store$1.inspectSource)) {
    store$1.inspectSource = function (it) {
        return functionToString(it);
    };
}
var inspectSource$2 = store$1.inspectSource;
getDefaultExportFromCjs(inspectSource$2);

var uncurryThis$g = functionUncurryThis;
var fails$i = fails$q;
var isCallable$9 = isCallable$j;
var classof$9 = classof$a;
var getBuiltIn$c = getBuiltIn$e;
var inspectSource$1 = inspectSource$2;
var noop = function () {};
var construct = getBuiltIn$c('Reflect', 'construct');
var constructorRegExp = /^\s*(?:class|function)\b/;
var exec$1 = uncurryThis$g(constructorRegExp.exec);
var INCORRECT_TO_STRING = !constructorRegExp.test(noop);
var isConstructorModern = function isConstructor(argument) {
    if (!isCallable$9(argument)) return false;
    try {
        construct(noop, [], argument);
        return true;
    } catch (error) {
        return false;
    }
};
var isConstructorLegacy = function isConstructor(argument) {
    if (!isCallable$9(argument)) return false;
    switch (classof$9(argument)) {
        case 'AsyncFunction':
        case 'GeneratorFunction':
        case 'AsyncGeneratorFunction':
            return false;
    }
    try {
        return INCORRECT_TO_STRING || !!exec$1(constructorRegExp, inspectSource$1(argument));
    } catch (error) {
        return true;
    }
};
isConstructorLegacy.sham = true;
var isConstructor$3 = !construct || fails$i(function () {
    var called;
    return isConstructorModern(isConstructorModern.call) || !isConstructorModern(Object) || !isConstructorModern(function () {
        called = true;
    }) || called;
}) ? isConstructorLegacy : isConstructorModern;
getDefaultExportFromCjs(isConstructor$3);

var isArray$5 = isArray$6;
var isConstructor$2 = isConstructor$3;
var isObject$a = isObject$f;
var wellKnownSymbol$k = wellKnownSymbol$o;
var SPECIES$5 = wellKnownSymbol$k('species');
var $Array$1 = Array;
var arraySpeciesConstructor$1 = function (originalArray) {
    var C;
    if (isArray$5(originalArray)) {
        C = originalArray.constructor;
        if (isConstructor$2(C) && (C === $Array$1 || isArray$5(C.prototype))) C = undefined; else if (isObject$a(C)) {
            C = C[SPECIES$5];
            if (C === null) C = undefined;
        }
    }
    return C === undefined ? $Array$1 : C;
};
getDefaultExportFromCjs(arraySpeciesConstructor$1);

var arraySpeciesConstructor = arraySpeciesConstructor$1;
var arraySpeciesCreate$2 = function (originalArray, length) {
    return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);
};
getDefaultExportFromCjs(arraySpeciesCreate$2);

var fails$h = fails$q;
var wellKnownSymbol$j = wellKnownSymbol$o;
var V8_VERSION$2 = environmentV8Version;
var SPECIES$4 = wellKnownSymbol$j('species');
var arrayMethodHasSpeciesSupport$4 = function (METHOD_NAME) {
    return V8_VERSION$2 >= 51 || !fails$h(function () {
        var array = [];
        var constructor = array.constructor = {};
        constructor[SPECIES$4] = function () {
            return {
                foo: 1
            };
        };
        return array[METHOD_NAME](Boolean).foo !== 1;
    });
};
getDefaultExportFromCjs(arrayMethodHasSpeciesSupport$4);

var $$C = _export;
var fails$g = fails$q;
var isArray$4 = isArray$6;
var isObject$9 = isObject$f;
var toObject$7 = toObject$9;
var lengthOfArrayLike$5 = lengthOfArrayLike$6;
var doesNotExceedSafeInteger$1 = doesNotExceedSafeInteger$2;
var createProperty$2 = createProperty$3;
var arraySpeciesCreate$1 = arraySpeciesCreate$2;
var arrayMethodHasSpeciesSupport$3 = arrayMethodHasSpeciesSupport$4;
var wellKnownSymbol$i = wellKnownSymbol$o;
var V8_VERSION$1 = environmentV8Version;
var IS_CONCAT_SPREADABLE = wellKnownSymbol$i('isConcatSpreadable');
var IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION$1 >= 51 || !fails$g(function () {
    var array = [];
    array[IS_CONCAT_SPREADABLE] = false;
    return array.concat()[0] !== array;
});
var isConcatSpreadable = function (O) {
    if (!isObject$9(O)) return false;
    var spreadable = O[IS_CONCAT_SPREADABLE];
    return spreadable !== undefined ? !!spreadable : isArray$4(O);
};
var FORCED$5 = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport$3('concat');
$$C({
    target: 'Array',
    proto: true,
    arity: 1,
    forced: FORCED$5
}, {
    concat: function concat(arg) {
        var O = toObject$7(this);
        var A = arraySpeciesCreate$1(O, 0);
        var n = 0;
        var i, k, length, len, E;
        for ((i = -1, length = arguments.length); i < length; i++) {
            E = i === -1 ? O : arguments[i];
            if (isConcatSpreadable(E)) {
                len = lengthOfArrayLike$5(E);
                doesNotExceedSafeInteger$1(n + len);
                for (k = 0; k < len; (k++, n++)) if ((k in E)) createProperty$2(A, n, E[k]);
            } else {
                doesNotExceedSafeInteger$1(n + 1);
                createProperty$2(A, n++, E);
            }
        }
        A.length = n;
        return A;
    }
});

var classof$8 = classof$a;
var $String$2 = String;
var toString$9 = function (argument) {
    if (classof$8(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');
    return $String$2(argument);
};
getDefaultExportFromCjs(toString$9);

var objectDefineProperties = {};

var toIntegerOrInfinity$2 = toIntegerOrInfinity$4;
var max$1 = Math.max;
var min = Math.min;
var toAbsoluteIndex$2 = function (index, length) {
    var integer = toIntegerOrInfinity$2(index);
    return integer < 0 ? max$1(integer + length, 0) : min(integer, length);
};
getDefaultExportFromCjs(toAbsoluteIndex$2);

var toIndexedObject$8 = toIndexedObject$a;
var toAbsoluteIndex$1 = toAbsoluteIndex$2;
var lengthOfArrayLike$4 = lengthOfArrayLike$6;
var createMethod$3 = function (IS_INCLUDES) {
    return function ($this, el, fromIndex) {
        var O = toIndexedObject$8($this);
        var length = lengthOfArrayLike$4(O);
        if (length === 0) return !IS_INCLUDES && -1;
        var index = toAbsoluteIndex$1(fromIndex, length);
        var value;
        if (IS_INCLUDES && el !== el) while (length > index) {
            value = O[index++];
            if (value !== value) return true;
        } else for (; length > index; index++) {
            if ((IS_INCLUDES || (index in O)) && O[index] === el) return IS_INCLUDES || index || 0;
        }
        return !IS_INCLUDES && -1;
    };
};
var arrayIncludes = {
    includes: createMethod$3(true),
    indexOf: createMethod$3(false)
};
getDefaultExportFromCjs(arrayIncludes);

var hiddenKeys$5 = {};
getDefaultExportFromCjs(hiddenKeys$5);

var uncurryThis$f = functionUncurryThis;
var hasOwn$b = hasOwnProperty_1;
var toIndexedObject$7 = toIndexedObject$a;
var indexOf = arrayIncludes.indexOf;
var hiddenKeys$4 = hiddenKeys$5;
var push$a = uncurryThis$f([].push);
var objectKeysInternal = function (object, names) {
    var O = toIndexedObject$7(object);
    var i = 0;
    var result = [];
    var key;
    for (key in O) !hasOwn$b(hiddenKeys$4, key) && hasOwn$b(O, key) && push$a(result, key);
    while (names.length > i) if (hasOwn$b(O, key = names[i++])) {
        ~indexOf(result, key) || push$a(result, key);
    }
    return result;
};
getDefaultExportFromCjs(objectKeysInternal);

var enumBugKeys$3 = ['constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'toLocaleString', 'toString', 'valueOf'];
getDefaultExportFromCjs(enumBugKeys$3);

var internalObjectKeys$1 = objectKeysInternal;
var enumBugKeys$2 = enumBugKeys$3;
var objectKeys$2 = Object.keys || (function keys(O) {
    return internalObjectKeys$1(O, enumBugKeys$2);
});
getDefaultExportFromCjs(objectKeys$2);

var DESCRIPTORS$8 = descriptors;
var V8_PROTOTYPE_DEFINE_BUG = v8PrototypeDefineBug;
var definePropertyModule$2 = objectDefineProperty;
var anObject$8 = anObject$a;
var toIndexedObject$6 = toIndexedObject$a;
var objectKeys$1 = objectKeys$2;
objectDefineProperties.f = DESCRIPTORS$8 && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {
    anObject$8(O);
    var props = toIndexedObject$6(Properties);
    var keys = objectKeys$1(Properties);
    var length = keys.length;
    var index = 0;
    var key;
    while (length > index) definePropertyModule$2.f(O, key = keys[index++], props[key]);
    return O;
};

var getBuiltIn$b = getBuiltIn$e;
var html$2 = getBuiltIn$b('document', 'documentElement');
getDefaultExportFromCjs(html$2);

var shared$5 = shared$7;
var uid$1 = uid$3;
var keys$3 = shared$5('keys');
var sharedKey$4 = function (key) {
    return keys$3[key] || (keys$3[key] = uid$1(key));
};
getDefaultExportFromCjs(sharedKey$4);

var anObject$7 = anObject$a;
var definePropertiesModule$1 = objectDefineProperties;
var enumBugKeys$1 = enumBugKeys$3;
var hiddenKeys$3 = hiddenKeys$5;
var html$1 = html$2;
var documentCreateElement = documentCreateElement$1;
var sharedKey$3 = sharedKey$4;
var GT = '>';
var LT = '<';
var PROTOTYPE$1 = 'prototype';
var SCRIPT = 'script';
var IE_PROTO$1 = sharedKey$3('IE_PROTO');
var EmptyConstructor = function () {};
var scriptTag = function (content) {
    return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;
};
var NullProtoObjectViaActiveX = function (activeXDocument) {
    activeXDocument.write(scriptTag(''));
    activeXDocument.close();
    var temp = activeXDocument.parentWindow.Object;
    activeXDocument = null;
    return temp;
};
var NullProtoObjectViaIFrame = function () {
    var iframe = documentCreateElement('iframe');
    var JS = 'java' + SCRIPT + ':';
    var iframeDocument;
    iframe.style.display = 'none';
    html$1.appendChild(iframe);
    iframe.src = String(JS);
    iframeDocument = iframe.contentWindow.document;
    iframeDocument.open();
    iframeDocument.write(scriptTag('document.F=Object'));
    iframeDocument.close();
    return iframeDocument.F;
};
var activeXDocument;
var NullProtoObject = function () {
    try {
        activeXDocument = new ActiveXObject('htmlfile');
    } catch (error) {}
    NullProtoObject = typeof document != 'undefined' ? document.domain && activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame() : NullProtoObjectViaActiveX(activeXDocument);
    var length = enumBugKeys$1.length;
    while (length--) delete NullProtoObject[PROTOTYPE$1][enumBugKeys$1[length]];
    return NullProtoObject();
};
hiddenKeys$3[IE_PROTO$1] = true;
var objectCreate = Object.create || (function create(O, Properties) {
    var result;
    if (O !== null) {
        EmptyConstructor[PROTOTYPE$1] = anObject$7(O);
        result = new EmptyConstructor();
        EmptyConstructor[PROTOTYPE$1] = null;
        result[IE_PROTO$1] = O;
    } else result = NullProtoObject();
    return Properties === undefined ? result : definePropertiesModule$1.f(result, Properties);
});
getDefaultExportFromCjs(objectCreate);

var objectGetOwnPropertyNames = {};

var internalObjectKeys = objectKeysInternal;
var enumBugKeys = enumBugKeys$3;
var hiddenKeys$2 = enumBugKeys.concat('length', 'prototype');
objectGetOwnPropertyNames.f = Object.getOwnPropertyNames || (function getOwnPropertyNames(O) {
    return internalObjectKeys(O, hiddenKeys$2);
});

var objectGetOwnPropertyNamesExternal = {};

var uncurryThis$e = functionUncurryThis;
var arraySlice$3 = uncurryThis$e([].slice);
getDefaultExportFromCjs(arraySlice$3);

var classof$7 = classofRaw$2;
var toIndexedObject$5 = toIndexedObject$a;
var $getOwnPropertyNames$1 = objectGetOwnPropertyNames.f;
var arraySlice$2 = arraySlice$3;
var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : [];
var getWindowNames = function (it) {
    try {
        return $getOwnPropertyNames$1(it);
    } catch (error) {
        return arraySlice$2(windowNames);
    }
};
objectGetOwnPropertyNamesExternal.f = function getOwnPropertyNames(it) {
    return windowNames && classof$7(it) === 'Window' ? getWindowNames(it) : $getOwnPropertyNames$1(toIndexedObject$5(it));
};

var objectGetOwnPropertySymbols = {};

objectGetOwnPropertySymbols.f = Object.getOwnPropertySymbols;

var createNonEnumerableProperty$5 = createNonEnumerableProperty$7;
var defineBuiltIn$5 = function (target, key, value, options) {
    if (options && options.enumerable) target[key] = value; else createNonEnumerableProperty$5(target, key, value);
    return target;
};
getDefaultExportFromCjs(defineBuiltIn$5);

var defineProperty$3 = objectDefineProperty;
var defineBuiltInAccessor$2 = function (target, name, descriptor) {
    return defineProperty$3.f(target, name, descriptor);
};
getDefaultExportFromCjs(defineBuiltInAccessor$2);

var wellKnownSymbolWrapped = {};

var wellKnownSymbol$h = wellKnownSymbol$o;
wellKnownSymbolWrapped.f = wellKnownSymbol$h;

var path$b = path$f;
var hasOwn$a = hasOwnProperty_1;
var wrappedWellKnownSymbolModule$1 = wellKnownSymbolWrapped;
var defineProperty$2 = objectDefineProperty.f;
var wellKnownSymbolDefine = function (NAME) {
    var Symbol = path$b.Symbol || (path$b.Symbol = {});
    if (!hasOwn$a(Symbol, NAME)) defineProperty$2(Symbol, NAME, {
        value: wrappedWellKnownSymbolModule$1.f(NAME)
    });
};
getDefaultExportFromCjs(wellKnownSymbolDefine);

var call$c = functionCall;
var getBuiltIn$a = getBuiltIn$e;
var wellKnownSymbol$g = wellKnownSymbol$o;
var defineBuiltIn$4 = defineBuiltIn$5;
var symbolDefineToPrimitive = function () {
    var Symbol = getBuiltIn$a('Symbol');
    var SymbolPrototype = Symbol && Symbol.prototype;
    var valueOf = SymbolPrototype && SymbolPrototype.valueOf;
    var TO_PRIMITIVE = wellKnownSymbol$g('toPrimitive');
    if (SymbolPrototype && !SymbolPrototype[TO_PRIMITIVE]) {
        defineBuiltIn$4(SymbolPrototype, TO_PRIMITIVE, function (hint) {
            return call$c(valueOf, this);
        }, {
            arity: 1
        });
    }
};
getDefaultExportFromCjs(symbolDefineToPrimitive);

var TO_STRING_TAG_SUPPORT$1 = toStringTagSupport;
var classof$6 = classof$a;
var objectToString = TO_STRING_TAG_SUPPORT$1 ? ({}).toString : function toString() {
    return '[object ' + classof$6(this) + ']';
};
getDefaultExportFromCjs(objectToString);

var TO_STRING_TAG_SUPPORT = toStringTagSupport;
var defineProperty$1 = objectDefineProperty.f;
var createNonEnumerableProperty$4 = createNonEnumerableProperty$7;
var hasOwn$9 = hasOwnProperty_1;
var toString$8 = objectToString;
var wellKnownSymbol$f = wellKnownSymbol$o;
var TO_STRING_TAG$1 = wellKnownSymbol$f('toStringTag');
var setToStringTag$7 = function (it, TAG, STATIC, SET_METHOD) {
    var target = STATIC ? it : it && it.prototype;
    if (target) {
        if (!hasOwn$9(target, TO_STRING_TAG$1)) {
            defineProperty$1(target, TO_STRING_TAG$1, {
                configurable: true,
                value: TAG
            });
        }
        if (SET_METHOD && !TO_STRING_TAG_SUPPORT) {
            createNonEnumerableProperty$4(target, 'toString', toString$8);
        }
    }
};
getDefaultExportFromCjs(setToStringTag$7);

var globalThis$e = globalThis_1;
var isCallable$8 = isCallable$j;
var WeakMap$1 = globalThis$e.WeakMap;
var weakMapBasicDetection = isCallable$8(WeakMap$1) && (/native code/).test(String(WeakMap$1));
getDefaultExportFromCjs(weakMapBasicDetection);

var NATIVE_WEAK_MAP = weakMapBasicDetection;
var globalThis$d = globalThis_1;
var isObject$8 = isObject$f;
var createNonEnumerableProperty$3 = createNonEnumerableProperty$7;
var hasOwn$8 = hasOwnProperty_1;
var shared$4 = sharedStoreExports;
var sharedKey$2 = sharedKey$4;
var hiddenKeys$1 = hiddenKeys$5;
var OBJECT_ALREADY_INITIALIZED = 'Object already initialized';
var TypeError$3 = globalThis$d.TypeError;
var WeakMap = globalThis$d.WeakMap;
var set$1, get, has;
var enforce = function (it) {
    return has(it) ? get(it) : set$1(it, {});
};
var getterFor = function (TYPE) {
    return function (it) {
        var state;
        if (!isObject$8(it) || (state = get(it)).type !== TYPE) {
            throw new TypeError$3('Incompatible receiver, ' + TYPE + ' required');
        }
        return state;
    };
};
if (NATIVE_WEAK_MAP || shared$4.state) {
    var store = shared$4.state || (shared$4.state = new WeakMap());
    store.get = store.get;
    store.has = store.has;
    store.set = store.set;
    set$1 = function (it, metadata) {
        if (store.has(it)) throw new TypeError$3(OBJECT_ALREADY_INITIALIZED);
        metadata.facade = it;
        store.set(it, metadata);
        return metadata;
    };
    get = function (it) {
        return store.get(it) || ({});
    };
    has = function (it) {
        return store.has(it);
    };
} else {
    var STATE = sharedKey$2('state');
    hiddenKeys$1[STATE] = true;
    set$1 = function (it, metadata) {
        if (hasOwn$8(it, STATE)) throw new TypeError$3(OBJECT_ALREADY_INITIALIZED);
        metadata.facade = it;
        createNonEnumerableProperty$3(it, STATE, metadata);
        return metadata;
    };
    get = function (it) {
        return hasOwn$8(it, STATE) ? it[STATE] : {};
    };
    has = function (it) {
        return hasOwn$8(it, STATE);
    };
}
var internalState = {
    set: set$1,
    get: get,
    has: has,
    enforce: enforce,
    getterFor: getterFor
};
getDefaultExportFromCjs(internalState);

var bind$4 = functionBindContext;
var uncurryThis$d = functionUncurryThis;
var IndexedObject = indexedObject;
var toObject$6 = toObject$9;
var lengthOfArrayLike$3 = lengthOfArrayLike$6;
var arraySpeciesCreate = arraySpeciesCreate$2;
var push$9 = uncurryThis$d([].push);
var createMethod$2 = function (TYPE) {
    var IS_MAP = TYPE === 1;
    var IS_FILTER = TYPE === 2;
    var IS_SOME = TYPE === 3;
    var IS_EVERY = TYPE === 4;
    var IS_FIND_INDEX = TYPE === 6;
    var IS_FILTER_REJECT = TYPE === 7;
    var NO_HOLES = TYPE === 5 || IS_FIND_INDEX;
    return function ($this, callbackfn, that, specificCreate) {
        var O = toObject$6($this);
        var self = IndexedObject(O);
        var length = lengthOfArrayLike$3(self);
        var boundFunction = bind$4(callbackfn, that);
        var index = 0;
        var create = specificCreate || arraySpeciesCreate;
        var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;
        var value, result;
        for (; length > index; index++) if (NO_HOLES || (index in self)) {
            value = self[index];
            result = boundFunction(value, index, O);
            if (TYPE) {
                if (IS_MAP) target[index] = result; else if (result) switch (TYPE) {
                    case 3:
                        return true;
                    case 5:
                        return value;
                    case 6:
                        return index;
                    case 2:
                        push$9(target, value);
                } else switch (TYPE) {
                    case 4:
                        return false;
                    case 7:
                        push$9(target, value);
                }
            }
        }
        return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;
    };
};
var arrayIteration = {
    forEach: createMethod$2(0),
    map: createMethod$2(1),
    filter: createMethod$2(2),
    some: createMethod$2(3),
    every: createMethod$2(4),
    find: createMethod$2(5),
    findIndex: createMethod$2(6),
    filterReject: createMethod$2(7)
};
getDefaultExportFromCjs(arrayIteration);

var $$B = _export;
var globalThis$c = globalThis_1;
var call$b = functionCall;
var uncurryThis$c = functionUncurryThis;
var DESCRIPTORS$7 = descriptors;
var NATIVE_SYMBOL$3 = symbolConstructorDetection;
var fails$f = fails$q;
var hasOwn$7 = hasOwnProperty_1;
var isPrototypeOf$b = objectIsPrototypeOf;
var anObject$6 = anObject$a;
var toIndexedObject$4 = toIndexedObject$a;
var toPropertyKey$1 = toPropertyKey$4;
var $toString = toString$9;
var createPropertyDescriptor$3 = createPropertyDescriptor$7;
var nativeObjectCreate = objectCreate;
var objectKeys = objectKeys$2;
var getOwnPropertyNamesModule$1 = objectGetOwnPropertyNames;
var getOwnPropertyNamesExternal = objectGetOwnPropertyNamesExternal;
var getOwnPropertySymbolsModule$2 = objectGetOwnPropertySymbols;
var getOwnPropertyDescriptorModule$2 = objectGetOwnPropertyDescriptor;
var definePropertyModule$1 = objectDefineProperty;
var definePropertiesModule = objectDefineProperties;
var propertyIsEnumerableModule = objectPropertyIsEnumerable;
var defineBuiltIn$3 = defineBuiltIn$5;
var defineBuiltInAccessor$1 = defineBuiltInAccessor$2;
var shared$3 = shared$7;
var sharedKey$1 = sharedKey$4;
var hiddenKeys = hiddenKeys$5;
var uid = uid$3;
var wellKnownSymbol$e = wellKnownSymbol$o;
var wrappedWellKnownSymbolModule = wellKnownSymbolWrapped;
var defineWellKnownSymbol$m = wellKnownSymbolDefine;
var defineSymbolToPrimitive$1 = symbolDefineToPrimitive;
var setToStringTag$6 = setToStringTag$7;
var InternalStateModule$3 = internalState;
var $forEach$1 = arrayIteration.forEach;
var HIDDEN = sharedKey$1('hidden');
var SYMBOL = 'Symbol';
var PROTOTYPE = 'prototype';
var setInternalState$3 = InternalStateModule$3.set;
var getInternalState$2 = InternalStateModule$3.getterFor(SYMBOL);
var ObjectPrototype$1 = Object[PROTOTYPE];
var $Symbol = globalThis$c.Symbol;
var SymbolPrototype = $Symbol && $Symbol[PROTOTYPE];
var RangeError$1 = globalThis$c.RangeError;
var TypeError$2 = globalThis$c.TypeError;
var QObject = globalThis$c.QObject;
var nativeGetOwnPropertyDescriptor$1 = getOwnPropertyDescriptorModule$2.f;
var nativeDefineProperty = definePropertyModule$1.f;
var nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;
var nativePropertyIsEnumerable = propertyIsEnumerableModule.f;
var push$8 = uncurryThis$c([].push);
var AllSymbols = shared$3('symbols');
var ObjectPrototypeSymbols = shared$3('op-symbols');
var WellKnownSymbolsStore$1 = shared$3('wks');
var USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;
var fallbackDefineProperty = function (O, P, Attributes) {
    var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor$1(ObjectPrototype$1, P);
    if (ObjectPrototypeDescriptor) delete ObjectPrototype$1[P];
    nativeDefineProperty(O, P, Attributes);
    if (ObjectPrototypeDescriptor && O !== ObjectPrototype$1) {
        nativeDefineProperty(ObjectPrototype$1, P, ObjectPrototypeDescriptor);
    }
};
var setSymbolDescriptor = DESCRIPTORS$7 && fails$f(function () {
    return nativeObjectCreate(nativeDefineProperty({}, 'a', {
        get: function () {
            return nativeDefineProperty(this, 'a', {
                value: 7
            }).a;
        }
    })).a !== 7;
}) ? fallbackDefineProperty : nativeDefineProperty;
var wrap = function (tag, description) {
    var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype);
    setInternalState$3(symbol, {
        type: SYMBOL,
        tag: tag,
        description: description
    });
    if (!DESCRIPTORS$7) symbol.description = description;
    return symbol;
};
var $defineProperty = function defineProperty(O, P, Attributes) {
    if (O === ObjectPrototype$1) $defineProperty(ObjectPrototypeSymbols, P, Attributes);
    anObject$6(O);
    var key = toPropertyKey$1(P);
    anObject$6(Attributes);
    if (hasOwn$7(AllSymbols, key)) {
        if (!Attributes.enumerable) {
            if (!hasOwn$7(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor$3(1, nativeObjectCreate(null)));
            O[HIDDEN][key] = true;
        } else {
            if (hasOwn$7(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;
            Attributes = nativeObjectCreate(Attributes, {
                enumerable: createPropertyDescriptor$3(0, false)
            });
        }
        return setSymbolDescriptor(O, key, Attributes);
    }
    return nativeDefineProperty(O, key, Attributes);
};
var $defineProperties = function defineProperties(O, Properties) {
    anObject$6(O);
    var properties = toIndexedObject$4(Properties);
    var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));
    $forEach$1(keys, function (key) {
        if (!DESCRIPTORS$7 || call$b($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]);
    });
    return O;
};
var $create = function create(O, Properties) {
    return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);
};
var $propertyIsEnumerable = function propertyIsEnumerable(V) {
    var P = toPropertyKey$1(V);
    var enumerable = call$b(nativePropertyIsEnumerable, this, P);
    if (this === ObjectPrototype$1 && hasOwn$7(AllSymbols, P) && !hasOwn$7(ObjectPrototypeSymbols, P)) return false;
    return enumerable || !hasOwn$7(this, P) || !hasOwn$7(AllSymbols, P) || hasOwn$7(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;
};
var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {
    var it = toIndexedObject$4(O);
    var key = toPropertyKey$1(P);
    if (it === ObjectPrototype$1 && hasOwn$7(AllSymbols, key) && !hasOwn$7(ObjectPrototypeSymbols, key)) return;
    var descriptor = nativeGetOwnPropertyDescriptor$1(it, key);
    if (descriptor && hasOwn$7(AllSymbols, key) && !(hasOwn$7(it, HIDDEN) && it[HIDDEN][key])) {
        descriptor.enumerable = true;
    }
    return descriptor;
};
var $getOwnPropertyNames = function getOwnPropertyNames(O) {
    var names = nativeGetOwnPropertyNames(toIndexedObject$4(O));
    var result = [];
    $forEach$1(names, function (key) {
        if (!hasOwn$7(AllSymbols, key) && !hasOwn$7(hiddenKeys, key)) push$8(result, key);
    });
    return result;
};
var $getOwnPropertySymbols = function (O) {
    var IS_OBJECT_PROTOTYPE = O === ObjectPrototype$1;
    var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject$4(O));
    var result = [];
    $forEach$1(names, function (key) {
        if (hasOwn$7(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn$7(ObjectPrototype$1, key))) {
            push$8(result, AllSymbols[key]);
        }
    });
    return result;
};
if (!NATIVE_SYMBOL$3) {
    $Symbol = function Symbol() {
        if (isPrototypeOf$b(SymbolPrototype, this)) throw new TypeError$2('Symbol is not a constructor');
        var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);
        var tag = uid(description);
        var setter = function (value) {
            var $this = this === undefined ? globalThis$c : this;
            if ($this === ObjectPrototype$1) call$b(setter, ObjectPrototypeSymbols, value);
            if (hasOwn$7($this, HIDDEN) && hasOwn$7($this[HIDDEN], tag)) $this[HIDDEN][tag] = false;
            var descriptor = createPropertyDescriptor$3(1, value);
            try {
                setSymbolDescriptor($this, tag, descriptor);
            } catch (error) {
                if (!(error instanceof RangeError$1)) throw error;
                fallbackDefineProperty($this, tag, descriptor);
            }
        };
        if (DESCRIPTORS$7 && USE_SETTER) setSymbolDescriptor(ObjectPrototype$1, tag, {
            configurable: true,
            set: setter
        });
        return wrap(tag, description);
    };
    SymbolPrototype = $Symbol[PROTOTYPE];
    defineBuiltIn$3(SymbolPrototype, 'toString', function toString() {
        return getInternalState$2(this).tag;
    });
    defineBuiltIn$3($Symbol, 'withoutSetter', function (description) {
        return wrap(uid(description), description);
    });
    propertyIsEnumerableModule.f = $propertyIsEnumerable;
    definePropertyModule$1.f = $defineProperty;
    definePropertiesModule.f = $defineProperties;
    getOwnPropertyDescriptorModule$2.f = $getOwnPropertyDescriptor;
    getOwnPropertyNamesModule$1.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;
    getOwnPropertySymbolsModule$2.f = $getOwnPropertySymbols;
    wrappedWellKnownSymbolModule.f = function (name) {
        return wrap(wellKnownSymbol$e(name), name);
    };
    if (DESCRIPTORS$7) {
        defineBuiltInAccessor$1(SymbolPrototype, 'description', {
            configurable: true,
            get: function description() {
                return getInternalState$2(this).description;
            }
        });
    }
}
$$B({
    global: true,
    constructor: true,
    wrap: true,
    forced: !NATIVE_SYMBOL$3,
    sham: !NATIVE_SYMBOL$3
}, {
    Symbol: $Symbol
});
$forEach$1(objectKeys(WellKnownSymbolsStore$1), function (name) {
    defineWellKnownSymbol$m(name);
});
$$B({
    target: SYMBOL,
    stat: true,
    forced: !NATIVE_SYMBOL$3
}, {
    useSetter: function () {
        USE_SETTER = true;
    },
    useSimple: function () {
        USE_SETTER = false;
    }
});
$$B({
    target: 'Object',
    stat: true,
    forced: !NATIVE_SYMBOL$3,
    sham: !DESCRIPTORS$7
}, {
    create: $create,
    defineProperty: $defineProperty,
    defineProperties: $defineProperties,
    getOwnPropertyDescriptor: $getOwnPropertyDescriptor
});
$$B({
    target: 'Object',
    stat: true,
    forced: !NATIVE_SYMBOL$3
}, {
    getOwnPropertyNames: $getOwnPropertyNames
});
defineSymbolToPrimitive$1();
setToStringTag$6($Symbol, SYMBOL);
hiddenKeys[HIDDEN] = true;

var NATIVE_SYMBOL$2 = symbolConstructorDetection;
var symbolRegistryDetection = NATIVE_SYMBOL$2 && !!Symbol['for'] && !!Symbol.keyFor;
getDefaultExportFromCjs(symbolRegistryDetection);

var $$A = _export;
var getBuiltIn$9 = getBuiltIn$e;
var hasOwn$6 = hasOwnProperty_1;
var toString$7 = toString$9;
var shared$2 = shared$7;
var NATIVE_SYMBOL_REGISTRY$1 = symbolRegistryDetection;
var StringToSymbolRegistry = shared$2('string-to-symbol-registry');
var SymbolToStringRegistry$1 = shared$2('symbol-to-string-registry');
$$A({
    target: 'Symbol',
    stat: true,
    forced: !NATIVE_SYMBOL_REGISTRY$1
}, {
    'for': function (key) {
        var string = toString$7(key);
        if (hasOwn$6(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];
        var symbol = getBuiltIn$9('Symbol')(string);
        StringToSymbolRegistry[string] = symbol;
        SymbolToStringRegistry$1[symbol] = string;
        return symbol;
    }
});

var $$z = _export;
var hasOwn$5 = hasOwnProperty_1;
var isSymbol$2 = isSymbol$5;
var tryToString$3 = tryToString$5;
var shared$1 = shared$7;
var NATIVE_SYMBOL_REGISTRY = symbolRegistryDetection;
var SymbolToStringRegistry = shared$1('symbol-to-string-registry');
$$z({
    target: 'Symbol',
    stat: true,
    forced: !NATIVE_SYMBOL_REGISTRY
}, {
    keyFor: function keyFor(sym) {
        if (!isSymbol$2(sym)) throw new TypeError(tryToString$3(sym) + ' is not a symbol');
        if (hasOwn$5(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];
    }
});

var uncurryThis$b = functionUncurryThis;
var isArray$3 = isArray$6;
var isCallable$7 = isCallable$j;
var classof$5 = classofRaw$2;
var toString$6 = toString$9;
var push$7 = uncurryThis$b([].push);
var getJsonReplacerFunction = function (replacer) {
    if (isCallable$7(replacer)) return replacer;
    if (!isArray$3(replacer)) return;
    var rawLength = replacer.length;
    var keys = [];
    for (var i = 0; i < rawLength; i++) {
        var element = replacer[i];
        if (typeof element == 'string') push$7(keys, element); else if (typeof element == 'number' || classof$5(element) === 'Number' || classof$5(element) === 'String') push$7(keys, toString$6(element));
    }
    var keysLength = keys.length;
    var root = true;
    return function (key, value) {
        if (root) {
            root = false;
            return value;
        }
        if (isArray$3(this)) return value;
        for (var j = 0; j < keysLength; j++) if (keys[j] === key) return value;
    };
};
getDefaultExportFromCjs(getJsonReplacerFunction);

var $$y = _export;
var getBuiltIn$8 = getBuiltIn$e;
var apply$3 = functionApply;
var call$a = functionCall;
var uncurryThis$a = functionUncurryThis;
var fails$e = fails$q;
var isCallable$6 = isCallable$j;
var isSymbol$1 = isSymbol$5;
var arraySlice$1 = arraySlice$3;
var getReplacerFunction = getJsonReplacerFunction;
var NATIVE_SYMBOL$1 = symbolConstructorDetection;
var $String$1 = String;
var $stringify = getBuiltIn$8('JSON', 'stringify');
var exec = uncurryThis$a((/./).exec);
var charAt$2 = uncurryThis$a(('').charAt);
var charCodeAt$1 = uncurryThis$a(('').charCodeAt);
var replace$1 = uncurryThis$a(('').replace);
var numberToString = uncurryThis$a((1.0).toString);
var tester = /[\uD800-\uDFFF]/g;
var low = /^[\uD800-\uDBFF]$/;
var hi = /^[\uDC00-\uDFFF]$/;
var WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL$1 || fails$e(function () {
    var symbol = getBuiltIn$8('Symbol')('stringify detection');
    return $stringify([symbol]) !== '[null]' || $stringify({
        a: symbol
    }) !== '{}' || $stringify(Object(symbol)) !== '{}';
});
var ILL_FORMED_UNICODE = fails$e(function () {
    return $stringify('\uDF06\uD834') !== '"\\udf06\\ud834"' || $stringify('\uDEAD') !== '"\\udead"';
});
var stringifyWithSymbolsFix = function (it, replacer) {
    var args = arraySlice$1(arguments);
    var $replacer = getReplacerFunction(replacer);
    if (!isCallable$6($replacer) && (it === undefined || isSymbol$1(it))) return;
    args[1] = function (key, value) {
        if (isCallable$6($replacer)) value = call$a($replacer, this, $String$1(key), value);
        if (!isSymbol$1(value)) return value;
    };
    return apply$3($stringify, null, args);
};
var fixIllFormed = function (match, offset, string) {
    var prev = charAt$2(string, offset - 1);
    var next = charAt$2(string, offset + 1);
    if (exec(low, match) && !exec(hi, next) || exec(hi, match) && !exec(low, prev)) {
        return '\\u' + numberToString(charCodeAt$1(match, 0), 16);
    }
    return match;
};
if ($stringify) {
    $$y({
        target: 'JSON',
        stat: true,
        arity: 3,
        forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE
    }, {
        stringify: function stringify(it, replacer, space) {
            var args = arraySlice$1(arguments);
            var result = apply$3(WRONG_SYMBOLS_CONVERSION ? stringifyWithSymbolsFix : $stringify, null, args);
            return ILL_FORMED_UNICODE && typeof result == 'string' ? replace$1(result, tester, fixIllFormed) : result;
        }
    });
}

var $$x = _export;
var NATIVE_SYMBOL = symbolConstructorDetection;
var fails$d = fails$q;
var getOwnPropertySymbolsModule$1 = objectGetOwnPropertySymbols;
var toObject$5 = toObject$9;
var FORCED$4 = !NATIVE_SYMBOL || fails$d(function () {
    getOwnPropertySymbolsModule$1.f(1);
});
$$x({
    target: 'Object',
    stat: true,
    forced: FORCED$4
}, {
    getOwnPropertySymbols: function getOwnPropertySymbols(it) {
        var $getOwnPropertySymbols = getOwnPropertySymbolsModule$1.f;
        return $getOwnPropertySymbols ? $getOwnPropertySymbols(toObject$5(it)) : [];
    }
});

var defineWellKnownSymbol$l = wellKnownSymbolDefine;
defineWellKnownSymbol$l('asyncIterator');

var defineWellKnownSymbol$k = wellKnownSymbolDefine;
defineWellKnownSymbol$k('hasInstance');

var defineWellKnownSymbol$j = wellKnownSymbolDefine;
defineWellKnownSymbol$j('isConcatSpreadable');

var defineWellKnownSymbol$i = wellKnownSymbolDefine;
defineWellKnownSymbol$i('iterator');

var defineWellKnownSymbol$h = wellKnownSymbolDefine;
defineWellKnownSymbol$h('match');

var defineWellKnownSymbol$g = wellKnownSymbolDefine;
defineWellKnownSymbol$g('matchAll');

var defineWellKnownSymbol$f = wellKnownSymbolDefine;
defineWellKnownSymbol$f('replace');

var defineWellKnownSymbol$e = wellKnownSymbolDefine;
defineWellKnownSymbol$e('search');

var defineWellKnownSymbol$d = wellKnownSymbolDefine;
defineWellKnownSymbol$d('species');

var defineWellKnownSymbol$c = wellKnownSymbolDefine;
defineWellKnownSymbol$c('split');

var defineWellKnownSymbol$b = wellKnownSymbolDefine;
var defineSymbolToPrimitive = symbolDefineToPrimitive;
defineWellKnownSymbol$b('toPrimitive');
defineSymbolToPrimitive();

var getBuiltIn$7 = getBuiltIn$e;
var defineWellKnownSymbol$a = wellKnownSymbolDefine;
var setToStringTag$5 = setToStringTag$7;
defineWellKnownSymbol$a('toStringTag');
setToStringTag$5(getBuiltIn$7('Symbol'), 'Symbol');

var defineWellKnownSymbol$9 = wellKnownSymbolDefine;
defineWellKnownSymbol$9('unscopables');

var globalThis$b = globalThis_1;
var setToStringTag$4 = setToStringTag$7;
setToStringTag$4(globalThis$b.JSON, 'JSON', true);

var path$a = path$f;
var symbol$4 = path$a.Symbol;
getDefaultExportFromCjs(symbol$4);

var iterators = {};
getDefaultExportFromCjs(iterators);

var DESCRIPTORS$6 = descriptors;
var hasOwn$4 = hasOwnProperty_1;
var FunctionPrototype$1 = Function.prototype;
var getDescriptor = DESCRIPTORS$6 && Object.getOwnPropertyDescriptor;
var EXISTS = hasOwn$4(FunctionPrototype$1, 'name');
var PROPER = EXISTS && (function something() {}).name === 'something';
var CONFIGURABLE = EXISTS && (!DESCRIPTORS$6 || DESCRIPTORS$6 && getDescriptor(FunctionPrototype$1, 'name').configurable);
var functionName = {
    EXISTS: EXISTS,
    PROPER: PROPER,
    CONFIGURABLE: CONFIGURABLE
};
getDefaultExportFromCjs(functionName);

var fails$c = fails$q;
var correctPrototypeGetter = !fails$c(function () {
    function F() {}
    F.prototype.constructor = null;
    return Object.getPrototypeOf(new F()) !== F.prototype;
});
getDefaultExportFromCjs(correctPrototypeGetter);

var hasOwn$3 = hasOwnProperty_1;
var isCallable$5 = isCallable$j;
var toObject$4 = toObject$9;
var sharedKey = sharedKey$4;
var CORRECT_PROTOTYPE_GETTER$1 = correctPrototypeGetter;
var IE_PROTO = sharedKey('IE_PROTO');
var $Object = Object;
var ObjectPrototype = $Object.prototype;
var objectGetPrototypeOf = CORRECT_PROTOTYPE_GETTER$1 ? $Object.getPrototypeOf : function (O) {
    var object = toObject$4(O);
    if (hasOwn$3(object, IE_PROTO)) return object[IE_PROTO];
    var constructor = object.constructor;
    if (isCallable$5(constructor) && object instanceof constructor) {
        return constructor.prototype;
    }
    return object instanceof $Object ? ObjectPrototype : null;
};
getDefaultExportFromCjs(objectGetPrototypeOf);

var fails$b = fails$q;
var isCallable$4 = isCallable$j;
var isObject$7 = isObject$f;
var create$8 = objectCreate;
var getPrototypeOf$7 = objectGetPrototypeOf;
var defineBuiltIn$2 = defineBuiltIn$5;
var wellKnownSymbol$d = wellKnownSymbol$o;
var ITERATOR$4 = wellKnownSymbol$d('iterator');
var BUGGY_SAFARI_ITERATORS$1 = false;
var IteratorPrototype$1, PrototypeOfArrayIteratorPrototype, arrayIterator;
if ([].keys) {
    arrayIterator = [].keys();
    if (!(('next' in arrayIterator))) BUGGY_SAFARI_ITERATORS$1 = true; else {
        PrototypeOfArrayIteratorPrototype = getPrototypeOf$7(getPrototypeOf$7(arrayIterator));
        if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype$1 = PrototypeOfArrayIteratorPrototype;
    }
}
var NEW_ITERATOR_PROTOTYPE = !isObject$7(IteratorPrototype$1) || fails$b(function () {
    var test = {};
    return IteratorPrototype$1[ITERATOR$4].call(test) !== test;
});
if (NEW_ITERATOR_PROTOTYPE) IteratorPrototype$1 = {}; else IteratorPrototype$1 = create$8(IteratorPrototype$1);
if (!isCallable$4(IteratorPrototype$1[ITERATOR$4])) {
    defineBuiltIn$2(IteratorPrototype$1, ITERATOR$4, function () {
        return this;
    });
}
var iteratorsCore = {
    IteratorPrototype: IteratorPrototype$1,
    BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS$1
};
getDefaultExportFromCjs(iteratorsCore);

var IteratorPrototype = iteratorsCore.IteratorPrototype;
var create$7 = objectCreate;
var createPropertyDescriptor$2 = createPropertyDescriptor$7;
var setToStringTag$3 = setToStringTag$7;
var Iterators$5 = iterators;
var returnThis$1 = function () {
    return this;
};
var iteratorCreateConstructor = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {
    var TO_STRING_TAG = NAME + ' Iterator';
    IteratorConstructor.prototype = create$7(IteratorPrototype, {
        next: createPropertyDescriptor$2(+!ENUMERABLE_NEXT, next)
    });
    setToStringTag$3(IteratorConstructor, TO_STRING_TAG, false, true);
    Iterators$5[TO_STRING_TAG] = returnThis$1;
    return IteratorConstructor;
};
getDefaultExportFromCjs(iteratorCreateConstructor);

var uncurryThis$9 = functionUncurryThis;
var aCallable$8 = aCallable$b;
var functionUncurryThisAccessor = function (object, key, method) {
    try {
        return uncurryThis$9(aCallable$8(Object.getOwnPropertyDescriptor(object, key)[method]));
    } catch (error) {}
};
getDefaultExportFromCjs(functionUncurryThisAccessor);

var isObject$6 = isObject$f;
var isPossiblePrototype$1 = function (argument) {
    return isObject$6(argument) || argument === null;
};
getDefaultExportFromCjs(isPossiblePrototype$1);

var isPossiblePrototype = isPossiblePrototype$1;
var $String = String;
var $TypeError$8 = TypeError;
var aPossiblePrototype$1 = function (argument) {
    if (isPossiblePrototype(argument)) return argument;
    throw new $TypeError$8("Can't set " + $String(argument) + ' as a prototype');
};
getDefaultExportFromCjs(aPossiblePrototype$1);

var uncurryThisAccessor = functionUncurryThisAccessor;
var isObject$5 = isObject$f;
var requireObjectCoercible$4 = requireObjectCoercible$7;
var aPossiblePrototype = aPossiblePrototype$1;
var objectSetPrototypeOf = Object.setPrototypeOf || (('__proto__' in ({})) ? (function () {
    var CORRECT_SETTER = false;
    var test = {};
    var setter;
    try {
        setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');
        setter(test, []);
        CORRECT_SETTER = test instanceof Array;
    } catch (error) {}
    return function setPrototypeOf(O, proto) {
        requireObjectCoercible$4(O);
        aPossiblePrototype(proto);
        if (!isObject$5(O)) return O;
        if (CORRECT_SETTER) setter(O, proto); else O.__proto__ = proto;
        return O;
    };
})() : undefined);
getDefaultExportFromCjs(objectSetPrototypeOf);

var $$w = _export;
var call$9 = functionCall;
var FunctionName = functionName;
var createIteratorConstructor = iteratorCreateConstructor;
var getPrototypeOf$6 = objectGetPrototypeOf;
var setToStringTag$2 = setToStringTag$7;
var defineBuiltIn$1 = defineBuiltIn$5;
var wellKnownSymbol$c = wellKnownSymbol$o;
var Iterators$4 = iterators;
var IteratorsCore = iteratorsCore;
var PROPER_FUNCTION_NAME = FunctionName.PROPER;
FunctionName.CONFIGURABLE;
IteratorsCore.IteratorPrototype;
var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;
var ITERATOR$3 = wellKnownSymbol$c('iterator');
var KEYS = 'keys';
var VALUES = 'values';
var ENTRIES = 'entries';
var returnThis = function () {
    return this;
};
var iteratorDefine = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {
    createIteratorConstructor(IteratorConstructor, NAME, next);
    var getIterationMethod = function (KIND) {
        if (KIND === DEFAULT && defaultIterator) return defaultIterator;
        if (!BUGGY_SAFARI_ITERATORS && KIND && (KIND in IterablePrototype)) return IterablePrototype[KIND];
        switch (KIND) {
            case KEYS:
                return function keys() {
                    return new IteratorConstructor(this, KIND);
                };
            case VALUES:
                return function values() {
                    return new IteratorConstructor(this, KIND);
                };
            case ENTRIES:
                return function entries() {
                    return new IteratorConstructor(this, KIND);
                };
        }
        return function () {
            return new IteratorConstructor(this);
        };
    };
    var TO_STRING_TAG = NAME + ' Iterator';
    var INCORRECT_VALUES_NAME = false;
    var IterablePrototype = Iterable.prototype;
    var nativeIterator = IterablePrototype[ITERATOR$3] || IterablePrototype['@@iterator'] || DEFAULT && IterablePrototype[DEFAULT];
    var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);
    var anyNativeIterator = NAME === 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;
    var CurrentIteratorPrototype, methods, KEY;
    if (anyNativeIterator) {
        CurrentIteratorPrototype = getPrototypeOf$6(anyNativeIterator.call(new Iterable()));
        if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {
            setToStringTag$2(CurrentIteratorPrototype, TO_STRING_TAG, true, true);
            Iterators$4[TO_STRING_TAG] = returnThis;
        }
    }
    if (PROPER_FUNCTION_NAME && DEFAULT === VALUES && nativeIterator && nativeIterator.name !== VALUES) {
        {
            INCORRECT_VALUES_NAME = true;
            defaultIterator = function values() {
                return call$9(nativeIterator, this);
            };
        }
    }
    if (DEFAULT) {
        methods = {
            values: getIterationMethod(VALUES),
            keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),
            entries: getIterationMethod(ENTRIES)
        };
        if (FORCED) for (KEY in methods) {
            if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !((KEY in IterablePrototype))) {
                defineBuiltIn$1(IterablePrototype, KEY, methods[KEY]);
            }
        } else $$w({
            target: NAME,
            proto: true,
            forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME
        }, methods);
    }
    if ((FORCED) && IterablePrototype[ITERATOR$3] !== defaultIterator) {
        defineBuiltIn$1(IterablePrototype, ITERATOR$3, defaultIterator, {
            name: DEFAULT
        });
    }
    Iterators$4[NAME] = defaultIterator;
    return methods;
};
getDefaultExportFromCjs(iteratorDefine);

var createIterResultObject$2 = function (value, done) {
    return {
        value: value,
        done: done
    };
};
getDefaultExportFromCjs(createIterResultObject$2);

var toIndexedObject$3 = toIndexedObject$a;
var Iterators$3 = iterators;
var InternalStateModule$2 = internalState;
objectDefineProperty.f;
var defineIterator$1 = iteratorDefine;
var createIterResultObject$1 = createIterResultObject$2;
var ARRAY_ITERATOR = 'Array Iterator';
var setInternalState$2 = InternalStateModule$2.set;
var getInternalState$1 = InternalStateModule$2.getterFor(ARRAY_ITERATOR);
var es_array_iterator = defineIterator$1(Array, 'Array', function (iterated, kind) {
    setInternalState$2(this, {
        type: ARRAY_ITERATOR,
        target: toIndexedObject$3(iterated),
        index: 0,
        kind: kind
    });
}, function () {
    var state = getInternalState$1(this);
    var target = state.target;
    var index = state.index++;
    if (!target || index >= target.length) {
        state.target = null;
        return createIterResultObject$1(undefined, true);
    }
    switch (state.kind) {
        case 'keys':
            return createIterResultObject$1(index, false);
        case 'values':
            return createIterResultObject$1(target[index], false);
    }
    return createIterResultObject$1([index, target[index]], false);
}, 'values');
Iterators$3.Arguments = Iterators$3.Array;
getDefaultExportFromCjs(es_array_iterator);

var domIterables = {
    CSSRuleList: 0,
    CSSStyleDeclaration: 0,
    CSSValueList: 0,
    ClientRectList: 0,
    DOMRectList: 0,
    DOMStringList: 0,
    DOMTokenList: 1,
    DataTransferItemList: 0,
    FileList: 0,
    HTMLAllCollection: 0,
    HTMLCollection: 0,
    HTMLFormElement: 0,
    HTMLSelectElement: 0,
    MediaList: 0,
    MimeTypeArray: 0,
    NamedNodeMap: 0,
    NodeList: 1,
    PaintRequestList: 0,
    Plugin: 0,
    PluginArray: 0,
    SVGLengthList: 0,
    SVGNumberList: 0,
    SVGPathSegList: 0,
    SVGPointList: 0,
    SVGStringList: 0,
    SVGTransformList: 0,
    SourceBufferList: 0,
    StyleSheetList: 0,
    TextTrackCueList: 0,
    TextTrackList: 0,
    TouchList: 0
};
getDefaultExportFromCjs(domIterables);

var DOMIterables$1 = domIterables;
var globalThis$a = globalThis_1;
var setToStringTag$1 = setToStringTag$7;
var Iterators$2 = iterators;
for (var COLLECTION_NAME in DOMIterables$1) {
    setToStringTag$1(globalThis$a[COLLECTION_NAME], COLLECTION_NAME);
    Iterators$2[COLLECTION_NAME] = Iterators$2.Array;
}

var parent$F = symbol$4;
var symbol$3 = parent$F;
getDefaultExportFromCjs(symbol$3);

var wellKnownSymbol$b = wellKnownSymbol$o;
var defineProperty = objectDefineProperty.f;
var METADATA = wellKnownSymbol$b('metadata');
var FunctionPrototype = Function.prototype;
if (FunctionPrototype[METADATA] === undefined) {
    defineProperty(FunctionPrototype, METADATA, {
        value: null
    });
}

var defineWellKnownSymbol$8 = wellKnownSymbolDefine;
defineWellKnownSymbol$8('asyncDispose');

var defineWellKnownSymbol$7 = wellKnownSymbolDefine;
defineWellKnownSymbol$7('dispose');

var defineWellKnownSymbol$6 = wellKnownSymbolDefine;
defineWellKnownSymbol$6('metadata');

var parent$E = symbol$3;
var symbol$2 = parent$E;
getDefaultExportFromCjs(symbol$2);

var getBuiltIn$6 = getBuiltIn$e;
var uncurryThis$8 = functionUncurryThis;
var Symbol$2 = getBuiltIn$6('Symbol');
var keyFor = Symbol$2.keyFor;
var thisSymbolValue$1 = uncurryThis$8(Symbol$2.prototype.valueOf);
var symbolIsRegistered = Symbol$2.isRegisteredSymbol || (function isRegisteredSymbol(value) {
    try {
        return keyFor(thisSymbolValue$1(value)) !== undefined;
    } catch (error) {
        return false;
    }
});
getDefaultExportFromCjs(symbolIsRegistered);

var $$v = _export;
var isRegisteredSymbol$1 = symbolIsRegistered;
$$v({
    target: 'Symbol',
    stat: true
}, {
    isRegisteredSymbol: isRegisteredSymbol$1
});

var shared = shared$7;
var getBuiltIn$5 = getBuiltIn$e;
var uncurryThis$7 = functionUncurryThis;
var isSymbol = isSymbol$5;
var wellKnownSymbol$a = wellKnownSymbol$o;
var Symbol$1 = getBuiltIn$5('Symbol');
var $isWellKnownSymbol = Symbol$1.isWellKnownSymbol;
var getOwnPropertyNames = getBuiltIn$5('Object', 'getOwnPropertyNames');
var thisSymbolValue = uncurryThis$7(Symbol$1.prototype.valueOf);
var WellKnownSymbolsStore = shared('wks');
for (var i = 0, symbolKeys = getOwnPropertyNames(Symbol$1), symbolKeysLength = symbolKeys.length; i < symbolKeysLength; i++) {
    try {
        var symbolKey = symbolKeys[i];
        if (isSymbol(Symbol$1[symbolKey])) wellKnownSymbol$a(symbolKey);
    } catch (error) {}
}
var symbolIsWellKnown = function isWellKnownSymbol(value) {
    if ($isWellKnownSymbol && $isWellKnownSymbol(value)) return true;
    try {
        var symbol = thisSymbolValue(value);
        for (var j = 0, keys = getOwnPropertyNames(WellKnownSymbolsStore), keysLength = keys.length; j < keysLength; j++) {
            if (WellKnownSymbolsStore[keys[j]] == symbol) return true;
        }
    } catch (error) {}
    return false;
};
getDefaultExportFromCjs(symbolIsWellKnown);

var $$u = _export;
var isWellKnownSymbol$1 = symbolIsWellKnown;
$$u({
    target: 'Symbol',
    stat: true,
    forced: true
}, {
    isWellKnownSymbol: isWellKnownSymbol$1
});

var defineWellKnownSymbol$5 = wellKnownSymbolDefine;
defineWellKnownSymbol$5('customMatcher');

var defineWellKnownSymbol$4 = wellKnownSymbolDefine;
defineWellKnownSymbol$4('observable');

var $$t = _export;
var isRegisteredSymbol = symbolIsRegistered;
$$t({
    target: 'Symbol',
    stat: true,
    name: 'isRegisteredSymbol'
}, {
    isRegistered: isRegisteredSymbol
});

var $$s = _export;
var isWellKnownSymbol = symbolIsWellKnown;
$$s({
    target: 'Symbol',
    stat: true,
    name: 'isWellKnownSymbol',
    forced: true
}, {
    isWellKnown: isWellKnownSymbol
});

var defineWellKnownSymbol$3 = wellKnownSymbolDefine;
defineWellKnownSymbol$3('matcher');

var defineWellKnownSymbol$2 = wellKnownSymbolDefine;
defineWellKnownSymbol$2('metadataKey');

var defineWellKnownSymbol$1 = wellKnownSymbolDefine;
defineWellKnownSymbol$1('patternMatch');

var defineWellKnownSymbol = wellKnownSymbolDefine;
defineWellKnownSymbol('replaceAll');

var parent$D = symbol$2;
var symbol$1 = parent$D;
getDefaultExportFromCjs(symbol$1);

var symbol = symbol$1;
var _Symbol = getDefaultExportFromCjs(symbol);

var uncurryThis$6 = functionUncurryThis;
var toIntegerOrInfinity$1 = toIntegerOrInfinity$4;
var toString$5 = toString$9;
var requireObjectCoercible$3 = requireObjectCoercible$7;
var charAt$1 = uncurryThis$6(('').charAt);
var charCodeAt = uncurryThis$6(('').charCodeAt);
var stringSlice$1 = uncurryThis$6(('').slice);
var createMethod$1 = function (CONVERT_TO_STRING) {
    return function ($this, pos) {
        var S = toString$5(requireObjectCoercible$3($this));
        var position = toIntegerOrInfinity$1(pos);
        var size = S.length;
        var first, second;
        if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;
        first = charCodeAt(S, position);
        return first < 0xD800 || first > 0xDBFF || position + 1 === size || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF ? CONVERT_TO_STRING ? charAt$1(S, position) : first : CONVERT_TO_STRING ? stringSlice$1(S, position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;
    };
};
var stringMultibyte = {
    codeAt: createMethod$1(false),
    charAt: createMethod$1(true)
};
getDefaultExportFromCjs(stringMultibyte);

var charAt = stringMultibyte.charAt;
var toString$4 = toString$9;
var InternalStateModule$1 = internalState;
var defineIterator = iteratorDefine;
var createIterResultObject = createIterResultObject$2;
var STRING_ITERATOR = 'String Iterator';
var setInternalState$1 = InternalStateModule$1.set;
var getInternalState = InternalStateModule$1.getterFor(STRING_ITERATOR);
defineIterator(String, 'String', function (iterated) {
    setInternalState$1(this, {
        type: STRING_ITERATOR,
        string: toString$4(iterated),
        index: 0
    });
}, function next() {
    var state = getInternalState(this);
    var string = state.string;
    var index = state.index;
    var point;
    if (index >= string.length) return createIterResultObject(undefined, true);
    point = charAt(string, index);
    state.index += point.length;
    return createIterResultObject(point, false);
});

var WrappedWellKnownSymbolModule$1 = wellKnownSymbolWrapped;
var iterator$4 = WrappedWellKnownSymbolModule$1.f('iterator');
getDefaultExportFromCjs(iterator$4);

var parent$C = iterator$4;
var iterator$3 = parent$C;
getDefaultExportFromCjs(iterator$3);

var parent$B = iterator$3;
var iterator$2 = parent$B;
getDefaultExportFromCjs(iterator$2);

var parent$A = iterator$2;
var iterator$1 = parent$A;
getDefaultExportFromCjs(iterator$1);

var iterator = iterator$1;
var _Symbol$iterator = getDefaultExportFromCjs(iterator);

function _typeof$1(o) {
    "@babel/helpers - typeof";
    return (_typeof$1 = "function" == typeof _Symbol && "symbol" == typeof _Symbol$iterator ? function (o) {
        return typeof o;
    } : function (o) {
        return o && "function" == typeof _Symbol && o.constructor === _Symbol && o !== _Symbol.prototype ? "symbol" : typeof o;
    }, _typeof$1(o));
}

var WrappedWellKnownSymbolModule = wellKnownSymbolWrapped;
var toPrimitive$6 = WrappedWellKnownSymbolModule.f('toPrimitive');
getDefaultExportFromCjs(toPrimitive$6);

var parent$z = toPrimitive$6;
var toPrimitive$5 = parent$z;
getDefaultExportFromCjs(toPrimitive$5);

var parent$y = toPrimitive$5;
var toPrimitive$4 = parent$y;
getDefaultExportFromCjs(toPrimitive$4);

var parent$x = toPrimitive$4;
var toPrimitive$3 = parent$x;
getDefaultExportFromCjs(toPrimitive$3);

var toPrimitive$2 = toPrimitive$3;
var _Symbol$toPrimitive = getDefaultExportFromCjs(toPrimitive$2);

function toPrimitive$1(t, r) {
    if ("object" != _typeof$1(t) || !t) return t;
    var e = t[_Symbol$toPrimitive];
    if (void 0 !== e) {
        var i = e.call(t, r || "default");
        if ("object" != _typeof$1(i)) return i;
        throw new TypeError("@@toPrimitive must return a primitive value.");
    }
    return ("string" === r ? String : Number)(t);
}

function toPropertyKey(t) {
    var i = toPrimitive$1(t, "string");
    return "symbol" == _typeof$1(i) ? i : i + "";
}

function _defineProperty(e, r, t) {
    return (((r = toPropertyKey(r)) in e) ? _Object$defineProperty(e, r, {
        value: t,
        enumerable: !0,
        configurable: !0,
        writable: !0
    }) : e[r] = t, e);
}

var fails$a = fails$q;
var arrayMethodIsStrict$1 = function (METHOD_NAME, argument) {
    var method = [][METHOD_NAME];
    return !!method && fails$a(function () {
        method.call(null, argument || (function () {
            return 1;
        }), 1);
    });
};
getDefaultExportFromCjs(arrayMethodIsStrict$1);

var $forEach = arrayIteration.forEach;
var arrayMethodIsStrict = arrayMethodIsStrict$1;
var STRICT_METHOD = arrayMethodIsStrict('forEach');
var arrayForEach = !STRICT_METHOD ? function forEach(callbackfn) {
    return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
} : [].forEach;
getDefaultExportFromCjs(arrayForEach);

var $$r = _export;
var forEach$7 = arrayForEach;
$$r({
    target: 'Array',
    proto: true,
    forced: [].forEach !== forEach$7
}, {
    forEach: forEach$7
});

var globalThis$9 = globalThis_1;
var path$9 = path$f;
var getBuiltInPrototypeMethod$9 = function (CONSTRUCTOR, METHOD) {
    var Namespace = path$9[CONSTRUCTOR + 'Prototype'];
    var pureMethod = Namespace && Namespace[METHOD];
    if (pureMethod) return pureMethod;
    var NativeConstructor = globalThis$9[CONSTRUCTOR];
    var NativePrototype = NativeConstructor && NativeConstructor.prototype;
    return NativePrototype && NativePrototype[METHOD];
};
getDefaultExportFromCjs(getBuiltInPrototypeMethod$9);

var getBuiltInPrototypeMethod$8 = getBuiltInPrototypeMethod$9;
var forEach$6 = getBuiltInPrototypeMethod$8('Array', 'forEach');
getDefaultExportFromCjs(forEach$6);

var parent$w = forEach$6;
var forEach$5 = parent$w;
getDefaultExportFromCjs(forEach$5);

var classof$4 = classof$a;
var hasOwn$2 = hasOwnProperty_1;
var isPrototypeOf$a = objectIsPrototypeOf;
var method$6 = forEach$5;
var ArrayPrototype$8 = Array.prototype;
var DOMIterables = {
    DOMTokenList: true,
    NodeList: true
};
var forEach$4 = function (it) {
    var own = it.forEach;
    return it === ArrayPrototype$8 || isPrototypeOf$a(ArrayPrototype$8, it) && own === ArrayPrototype$8.forEach || hasOwn$2(DOMIterables, classof$4(it)) ? method$6 : own;
};
getDefaultExportFromCjs(forEach$4);

var forEach$3 = forEach$4;
var _forEachInstanceProperty = getDefaultExportFromCjs(forEach$3);

var $$q = _export;
var $includes = arrayIncludes.includes;
var fails$9 = fails$q;
var BROKEN_ON_SPARSE = fails$9(function () {
    return !Array(1).includes();
});
$$q({
    target: 'Array',
    proto: true,
    forced: BROKEN_ON_SPARSE
}, {
    includes: function includes(el) {
        return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
    }
});

var getBuiltInPrototypeMethod$7 = getBuiltInPrototypeMethod$9;
var includes$4 = getBuiltInPrototypeMethod$7('Array', 'includes');
getDefaultExportFromCjs(includes$4);

var isObject$4 = isObject$f;
var classof$3 = classofRaw$2;
var wellKnownSymbol$9 = wellKnownSymbol$o;
var MATCH$1 = wellKnownSymbol$9('match');
var isRegexp = function (it) {
    var isRegExp;
    return isObject$4(it) && ((isRegExp = it[MATCH$1]) !== undefined ? !!isRegExp : classof$3(it) === 'RegExp');
};
getDefaultExportFromCjs(isRegexp);

var isRegExp = isRegexp;
var $TypeError$7 = TypeError;
var notARegexp = function (it) {
    if (isRegExp(it)) {
        throw new $TypeError$7("The method doesn't accept regular expressions");
    }
    return it;
};
getDefaultExportFromCjs(notARegexp);

var wellKnownSymbol$8 = wellKnownSymbol$o;
var MATCH = wellKnownSymbol$8('match');
var correctIsRegexpLogic = function (METHOD_NAME) {
    var regexp = /./;
    try {
        ('/./')[METHOD_NAME](regexp);
    } catch (error1) {
        try {
            regexp[MATCH] = false;
            return ('/./')[METHOD_NAME](regexp);
        } catch (error2) {}
    }
    return false;
};
getDefaultExportFromCjs(correctIsRegexpLogic);

var $$p = _export;
var uncurryThis$5 = functionUncurryThis;
var notARegExp = notARegexp;
var requireObjectCoercible$2 = requireObjectCoercible$7;
var toString$3 = toString$9;
var correctIsRegExpLogic = correctIsRegexpLogic;
var stringIndexOf = uncurryThis$5(('').indexOf);
$$p({
    target: 'String',
    proto: true,
    forced: !correctIsRegExpLogic('includes')
}, {
    includes: function includes(searchString) {
        return !!~stringIndexOf(toString$3(requireObjectCoercible$2(this)), toString$3(notARegExp(searchString)), arguments.length > 1 ? arguments[1] : undefined);
    }
});

var getBuiltInPrototypeMethod$6 = getBuiltInPrototypeMethod$9;
var includes$3 = getBuiltInPrototypeMethod$6('String', 'includes');
getDefaultExportFromCjs(includes$3);

var isPrototypeOf$9 = objectIsPrototypeOf;
var arrayMethod = includes$4;
var stringMethod = includes$3;
var ArrayPrototype$7 = Array.prototype;
var StringPrototype = String.prototype;
var includes$2 = function (it) {
    var own = it.includes;
    if (it === ArrayPrototype$7 || isPrototypeOf$9(ArrayPrototype$7, it) && own === ArrayPrototype$7.includes) return arrayMethod;
    if (typeof it == 'string' || it === StringPrototype || isPrototypeOf$9(StringPrototype, it) && own === StringPrototype.includes) {
        return stringMethod;
    }
    return own;
};
getDefaultExportFromCjs(includes$2);

var parent$v = includes$2;
var includes$1 = parent$v;
getDefaultExportFromCjs(includes$1);

var includes = includes$1;
var _includesInstanceProperty = getDefaultExportFromCjs(includes);

var FormComponentMixin = {
    data: function data() {
        return {
            customMethods: {},
            currentValue: undefined
        };
    },
    props: {
        renderScene: {
            type: String,
            default: 'edit'
        },
        componentConfig: {
            type: Object,
            default: function _default() {
                return {};
            }
        },
        formSource: {
            type: Object,
            default: function _default() {
                return {};
            }
        }
    },
    computed: {
        formValue: {
            get: function get() {
                if (this.formSource) {
                    if (this.renderScene === 'read') {
                        return this.formSource.formDataControl.formData[this.componentConfig.model + 'Name'] || this.formSource.formDataControl.formData[this.componentConfig.model];
                    }
                    if (this.componentConfig.model) {
                        this.formSource.formDataControl.formData[this.componentConfig.model];
                    } else if (this.componentConfig.temporaryField) {
                        this.formSource.formDataControl.formData[this.componentConfig.temporaryField];
                    }
                    return this.formSource.formDataControl.formData[this.componentConfig.model];
                }
                return undefined;
            },
            set: function set(val) {
                if (this.formSource.formDataControl.formData) {
                    if (this.componentConfig.temporaryField) {
                        this.$set(this.formSource.formDataControl.formData, this.componentConfig.temporaryField, val);
                    }
                    if (this.componentConfig.model) {
                        this.$set(this.formSource.formDataControl.formData, this.componentConfig.model, val);
                    }
                }
            }
        }
    },
    created: function created() {
        if (this.renderScene === 'edit') {
            this.customMethods = parseCustomEvent(this);
        }
    },
    mounted: function mounted() {
        var _this = this;
        if (this.customMethods.customOnCreated) {
            setTimeout(function () {
                try {
                    _this.customMethods.customOnCreated(_this.getFormFieldValue(_this.componentConfig.model), _this.componentConfig.model);
                } catch (err) {
                    _this.$message.error(_this.$t('自定义事件异常'));
                    console.error(err);
                }
            }, 100);
        }
    },
    beforeDestroy: function beforeDestroy() {},
    methods: {
        handleChange: function handleChange(value, key, target) {
            this.formValue = value;
            this.$emit('change', value, key, target);
            if (this.customMethods.customOnChange) {
                try {
                    this.customMethods.customOnChange(value.target ? value.target.value : value, this.componentConfig.model);
                } catch (err) {
                    this.$message.error(this.$t('自定义事件异常'));
                    console.error(err);
                }
            }
        },
        getAllFormData: function getAllFormData() {
            return this.formSource.formDataControl.getAllFormData();
        },
        getFormFieldValue: function getFormFieldValue(field) {
            return this.formSource.formDataControl.getFormFieldValue(field);
        },
        setFormFieldValue: function setFormFieldValue(values) {
            return this.formSource.formDataControl.setFormFieldValue(values);
        },
        getFormComponentConfig: function getFormComponentConfig(field) {
            return this.formSource.formDataControl.getFormComponentConfig(field);
        },
        findByNameVnode: function findByNameVnode(obj, targetName) {
            var _context;
            if (_includesInstanceProperty(_context = obj.$vnode.tag).call(_context, targetName)) {
                return obj;
            } else {
                return this.findByNameVnode(obj.$parent, targetName);
            }
        }
    }
};
function parseCustomEvent(vm) {
    var _vm$componentConfig$m = vm.componentConfig.methods, methods = _vm$componentConfig$m === void 0 ? {} : _vm$componentConfig$m;
    var customMethods = {};
    for (var key in methods) {
        try {
            if (methods[key]) {
                customMethods[key] = vm.formSource.customScript && vm.formSource.customScript.executeCodeScript(methods[key], vm);
            }
        } catch (err) {
            console.error(err);
        }
    }
    return customMethods;
}

var script$A = {
    name: 'FormAlertBox',
    mixins: [FormComponentMixin],
    props: {},
    data() {
        return {};
    }
};

function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {
    if (typeof shadowMode !== 'boolean') {
        createInjectorSSR = createInjector;
        createInjector = shadowMode;
        shadowMode = false;
    }
    // Vue.extend constructor export interop.
    var options = typeof script === 'function' ? script.options : script;
    // render functions
    if (template && template.render) {
        options.render = template.render;
        options.staticRenderFns = template.staticRenderFns;
        options._compiled = true;
        // functional template
        if (isFunctionalTemplate) {
            options.functional = true;
        }
    }
    // scopedId
    if (scopeId) {
        options._scopeId = scopeId;
    }
    let hook;
    if (moduleIdentifier) {
        // server build
        hook = function (context) {
            // 2.3 injection
            context =
                context || // cached call
                    (this.$vnode && this.$vnode.ssrContext) || // stateful
                    (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional
            // 2.2 with runInNewContext: true
            if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
                context = __VUE_SSR_CONTEXT__;
            }
            // inject component styles
            if (style) {
                style.call(this, createInjectorSSR(context));
            }
            // register component module identifier for async chunk inference
            if (context && context._registeredComponents) {
                context._registeredComponents.add(moduleIdentifier);
            }
        };
        // used by ssr in case component is cached and beforeCreate
        // never gets called
        options._ssrRegister = hook;
    }
    else if (style) {
        hook = shadowMode
            ? function (context) {
                style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));
            }
            : function (context) {
                style.call(this, createInjector(context));
            };
    }
    if (hook) {
        if (options.functional) {
            // register for functional component in vue file
            var originalRender = options.render;
            options.render = function renderWithStyleInjection(h, context) {
                hook.call(context);
                return originalRender(h, context);
            };
        }
        else {
            // inject component registration as beforeCreate hook
            var existing = options.beforeCreate;
            options.beforeCreate = existing ? [].concat(existing, hook) : [hook];
        }
    }
    return script;
}

/* script */ var __vue_script__$A = script$A;
/* template */
var __vue_render__$z = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c(
    "div",
    { staticClass: "form-component form-text-input" },
    [
      _c("a-alert", {
        attrs: {
          message: _vm.componentConfig.label,
          description: _vm.componentConfig.description,
          type: _vm.componentConfig.alertType,
          showIcon: _vm.componentConfig.showIcon,
          closable: _vm.componentConfig.closable,
          banner: _vm.componentConfig.banner
        }
      })
    ],
    1
  )
};
var __vue_staticRenderFns__$z = [];
__vue_render__$z._withStripped = true;

  /* style */
  var __vue_inject_styles__$A = undefined;
  /* scoped */
  var __vue_scope_id__$A = undefined;
  /* module identifier */
  var __vue_module_identifier__$A = undefined;
  /* functional template */
  var __vue_is_functional_template__$A = false;
  /* style inject */
  
  /* style inject SSR */
  
  /* style inject shadow dom */
  

  
  var __vue_component__$A = /*#__PURE__*/normalizeComponent(
    { render: __vue_render__$z, staticRenderFns: __vue_staticRenderFns__$z },
    __vue_inject_styles__$A,
    __vue_script__$A,
    __vue_scope_id__$A,
    __vue_is_functional_template__$A,
    __vue_module_identifier__$A,
    false,
    undefined,
    undefined,
    undefined
  );

__vue_component__$A.install = function (Vue) {
    Vue.component(__vue_component__$A.name, __vue_component__$A);
};

var script$z = {
    name: 'FormButton',
    mixins: [FormComponentMixin],
    props: {},
    data() {
        return {};
    },
    mounted() {},
    methods: {
        handleCustomBtnClick() {
            try {
                var onClickConfig = JSON.parse(this.componentConfig.onClick);
                var {eventModule, eventFunctionName} = onClickConfig;
                this.$lib[eventModule][eventFunctionName].call(this, event, this.getAllFormData());
            } catch {
                console.error('找不到云函数');
            }
        }
    }
};

/* script */ var __vue_script__$z = script$z;
/* template */
var __vue_render__$y = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c(
    "div",
    {
      staticClass: "form-button form-component",
      class: "form-button-" + (_vm.componentConfig.alignType || "left")
    },
    [
      _c(
        "a-button",
        {
          attrs: {
            disabled: _vm.componentConfig.disabled,
            type: _vm.componentConfig.type
          },
          on: { click: _vm.handleCustomBtnClick }
        },
        [_vm._v(_vm._s(_vm.$t(_vm.componentConfig.label)))]
      )
    ],
    1
  )
};
var __vue_staticRenderFns__$y = [];
__vue_render__$y._withStripped = true;

  /* style */
  var __vue_inject_styles__$z = undefined;
  /* scoped */
  var __vue_scope_id__$z = undefined;
  /* module identifier */
  var __vue_module_identifier__$z = undefined;
  /* functional template */
  var __vue_is_functional_template__$z = false;
  /* style inject */
  
  /* style inject SSR */
  
  /* style inject shadow dom */
  

  
  var __vue_component__$z = /*#__PURE__*/normalizeComponent(
    { render: __vue_render__$y, staticRenderFns: __vue_staticRenderFns__$y },
    __vue_inject_styles__$z,
    __vue_script__$z,
    __vue_scope_id__$z,
    __vue_is_functional_template__$z,
    __vue_module_identifier__$z,
    false,
    undefined,
    undefined,
    undefined
  );

__vue_component__$z.install = function (Vue) {
    Vue.component(__vue_component__$z.name, __vue_component__$z);
};

var script$y = {
    name: 'FormCascadeSelect',
    mixins: [FormComponentMixin],
    props: {
        renderScene: {
            type: String,
            default: ''
        },
        dynamicData: {
            type: Object,
            default: () => ({})
        }
    },
    data() {
        return {};
    },
    mounted() {},
    methods: {
        getOptions() {
            let staticOptions = this.componentConfig.options || [];
            return staticOptions;
        }
    }
};

/* script */ var __vue_script__$y = script$y;
/* template */
var __vue_render__$x = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c(
    "div",
    { staticClass: "form-component form-text-input" },
    [
      _c(
        "proxy-form-item",
        {
          attrs: {
            label: _vm.componentConfig.label,
            componentConfig: _vm.componentConfig,
            promptMessage: _vm.componentConfig.promptMessageContent,
            rules: _vm.componentConfig.rules
          }
        },
        [
          _c("a-cascader", {
            style: "width:" + _vm.componentConfig.width,
            attrs: {
              placeholder: _vm.componentConfig.placeholder,
              showSearch: _vm.componentConfig.showSearch,
              options: _vm.getOptions(),
              disabled:
                _vm.componentConfig.disabled || _vm.renderScene === "read",
              allowClear: _vm.componentConfig.clearable
            },
            on: {
              change: function($event) {
                return _vm.handleChange($event, _vm.componentConfig.model)
              }
            },
            model: {
              value: _vm.formValue,
              callback: function($$v) {
                _vm.formValue = $$v;
              },
              expression: "formValue"
            }
          })
        ],
        1
      )
    ],
    1
  )
};
var __vue_staticRenderFns__$x = [];
__vue_render__$x._withStripped = true;

  /* style */
  var __vue_inject_styles__$y = undefined;
  /* scoped */
  var __vue_scope_id__$y = undefined;
  /* module identifier */
  var __vue_module_identifier__$y = undefined;
  /* functional template */
  var __vue_is_functional_template__$y = false;
  /* style inject */
  
  /* style inject SSR */
  
  /* style inject shadow dom */
  

  
  var __vue_component__$y = /*#__PURE__*/normalizeComponent(
    { render: __vue_render__$x, staticRenderFns: __vue_staticRenderFns__$x },
    __vue_inject_styles__$y,
    __vue_script__$y,
    __vue_scope_id__$y,
    __vue_is_functional_template__$y,
    __vue_module_identifier__$y,
    false,
    undefined,
    undefined,
    undefined
  );

__vue_component__$y.install = function (Vue) {
    Vue.component(__vue_component__$y.name, __vue_component__$y);
};

var $$o = _export;
var toObject$3 = toObject$9;
var nativeKeys = objectKeys$2;
var fails$8 = fails$q;
var FAILS_ON_PRIMITIVES$1 = fails$8(function () {
    nativeKeys(1);
});
$$o({
    target: 'Object',
    stat: true,
    forced: FAILS_ON_PRIMITIVES$1
}, {
    keys: function keys(it) {
        return nativeKeys(toObject$3(it));
    }
});

var path$8 = path$f;
var keys$2 = path$8.Object.keys;
getDefaultExportFromCjs(keys$2);

var parent$u = keys$2;
var keys$1 = parent$u;
getDefaultExportFromCjs(keys$1);

var keys = keys$1;
var _Object$keys = getDefaultExportFromCjs(keys);

var path$7 = path$f;
var getOwnPropertySymbols$2 = path$7.Object.getOwnPropertySymbols;
getDefaultExportFromCjs(getOwnPropertySymbols$2);

var parent$t = getOwnPropertySymbols$2;
var getOwnPropertySymbols$1 = parent$t;
getDefaultExportFromCjs(getOwnPropertySymbols$1);

var getOwnPropertySymbols = getOwnPropertySymbols$1;
var _Object$getOwnPropertySymbols = getDefaultExportFromCjs(getOwnPropertySymbols);

var getOwnPropertyDescriptor$5 = {exports: {}};

var $$n = _export;
var fails$7 = fails$q;
var toIndexedObject$2 = toIndexedObject$a;
var nativeGetOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f;
var DESCRIPTORS$5 = descriptors;
var FORCED$3 = !DESCRIPTORS$5 || fails$7(function () {
    nativeGetOwnPropertyDescriptor(1);
});
$$n({
    target: 'Object',
    stat: true,
    forced: FORCED$3,
    sham: !DESCRIPTORS$5
}, {
    getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {
        return nativeGetOwnPropertyDescriptor(toIndexedObject$2(it), key);
    }
});

var path$6 = path$f;
var Object$2 = path$6.Object;
var getOwnPropertyDescriptor$4 = getOwnPropertyDescriptor$5.exports = function getOwnPropertyDescriptor(it, key) {
    return Object$2.getOwnPropertyDescriptor(it, key);
};
if (Object$2.getOwnPropertyDescriptor.sham) getOwnPropertyDescriptor$4.sham = true;
var getOwnPropertyDescriptorExports = getOwnPropertyDescriptor$5.exports;
getDefaultExportFromCjs(getOwnPropertyDescriptorExports);

var parent$s = getOwnPropertyDescriptorExports;
var getOwnPropertyDescriptor$3 = parent$s;
getDefaultExportFromCjs(getOwnPropertyDescriptor$3);

var getOwnPropertyDescriptor$2 = getOwnPropertyDescriptor$3;
var _Object$getOwnPropertyDescriptor = getDefaultExportFromCjs(getOwnPropertyDescriptor$2);

var getBuiltIn$4 = getBuiltIn$e;
var uncurryThis$4 = functionUncurryThis;
var getOwnPropertyNamesModule = objectGetOwnPropertyNames;
var getOwnPropertySymbolsModule = objectGetOwnPropertySymbols;
var anObject$5 = anObject$a;
var concat = uncurryThis$4([].concat);
var ownKeys$3 = getBuiltIn$4('Reflect', 'ownKeys') || (function ownKeys(it) {
    var keys = getOwnPropertyNamesModule.f(anObject$5(it));
    var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;
    return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;
});
getDefaultExportFromCjs(ownKeys$3);

var $$m = _export;
var DESCRIPTORS$4 = descriptors;
var ownKeys$2 = ownKeys$3;
var toIndexedObject$1 = toIndexedObject$a;
var getOwnPropertyDescriptorModule$1 = objectGetOwnPropertyDescriptor;
var createProperty$1 = createProperty$3;
$$m({
    target: 'Object',
    stat: true,
    sham: !DESCRIPTORS$4
}, {
    getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {
        var O = toIndexedObject$1(object);
        var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule$1.f;
        var keys = ownKeys$2(O);
        var result = {};
        var index = 0;
        var key, descriptor;
        while (keys.length > index) {
            descriptor = getOwnPropertyDescriptor(O, key = keys[index++]);
            if (descriptor !== undefined) createProperty$1(result, key, descriptor);
        }
        return result;
    }
});

var path$5 = path$f;
var getOwnPropertyDescriptors$2 = path$5.Object.getOwnPropertyDescriptors;
getDefaultExportFromCjs(getOwnPropertyDescriptors$2);

var parent$r = getOwnPropertyDescriptors$2;
var getOwnPropertyDescriptors$1 = parent$r;
getDefaultExportFromCjs(getOwnPropertyDescriptors$1);

var getOwnPropertyDescriptors = getOwnPropertyDescriptors$1;
var _Object$getOwnPropertyDescriptors = getDefaultExportFromCjs(getOwnPropertyDescriptors);

var hasOwn$1 = hasOwnProperty_1;
var ownKeys$1 = ownKeys$3;
var getOwnPropertyDescriptorModule = objectGetOwnPropertyDescriptor;
var definePropertyModule = objectDefineProperty;
var copyConstructorProperties$1 = function (target, source, exceptions) {
    var keys = ownKeys$1(source);
    var defineProperty = definePropertyModule.f;
    var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
    for (var i = 0; i < keys.length; i++) {
        var key = keys[i];
        if (!hasOwn$1(target, key) && !(exceptions && hasOwn$1(exceptions, key))) {
            defineProperty(target, key, getOwnPropertyDescriptor(source, key));
        }
    }
};
getDefaultExportFromCjs(copyConstructorProperties$1);

var isObject$3 = isObject$f;
var createNonEnumerableProperty$2 = createNonEnumerableProperty$7;
var installErrorCause$1 = function (O, options) {
    if (isObject$3(options) && ('cause' in options)) {
        createNonEnumerableProperty$2(O, 'cause', options.cause);
    }
};
getDefaultExportFromCjs(installErrorCause$1);

var uncurryThis$3 = functionUncurryThis;
var $Error$1 = Error;
var replace = uncurryThis$3(('').replace);
var TEST = (function (arg) {
    return String(new $Error$1(arg).stack);
})('zxcasd');
var V8_OR_CHAKRA_STACK_ENTRY = /\n\s*at [^:]*:[^\n]*/;
var IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);
var errorStackClear = function (stack, dropEntries) {
    if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error$1.prepareStackTrace) {
        while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');
    }
    return stack;
};
getDefaultExportFromCjs(errorStackClear);

var fails$6 = fails$q;
var createPropertyDescriptor$1 = createPropertyDescriptor$7;
var errorStackInstallable = !fails$6(function () {
    var error = new Error('a');
    if (!(('stack' in error))) return true;
    Object.defineProperty(error, 'stack', createPropertyDescriptor$1(1, 7));
    return error.stack !== 7;
});
getDefaultExportFromCjs(errorStackInstallable);

var createNonEnumerableProperty$1 = createNonEnumerableProperty$7;
var clearErrorStack = errorStackClear;
var ERROR_STACK_INSTALLABLE = errorStackInstallable;
var captureStackTrace = Error.captureStackTrace;
var errorStackInstall = function (error, C, stack, dropEntries) {
    if (ERROR_STACK_INSTALLABLE) {
        if (captureStackTrace) captureStackTrace(error, C); else createNonEnumerableProperty$1(error, 'stack', clearErrorStack(stack, dropEntries));
    }
};
getDefaultExportFromCjs(errorStackInstall);

var wellKnownSymbol$7 = wellKnownSymbol$o;
var Iterators$1 = iterators;
var ITERATOR$2 = wellKnownSymbol$7('iterator');
var ArrayPrototype$6 = Array.prototype;
var isArrayIteratorMethod$1 = function (it) {
    return it !== undefined && (Iterators$1.Array === it || ArrayPrototype$6[ITERATOR$2] === it);
};
getDefaultExportFromCjs(isArrayIteratorMethod$1);

var classof$2 = classof$a;
var getMethod$1 = getMethod$3;
var isNullOrUndefined$1 = isNullOrUndefined$4;
var Iterators = iterators;
var wellKnownSymbol$6 = wellKnownSymbol$o;
var ITERATOR$1 = wellKnownSymbol$6('iterator');
var getIteratorMethod$2 = function (it) {
    if (!isNullOrUndefined$1(it)) return getMethod$1(it, ITERATOR$1) || getMethod$1(it, '@@iterator') || Iterators[classof$2(it)];
};
getDefaultExportFromCjs(getIteratorMethod$2);

var call$8 = functionCall;
var aCallable$7 = aCallable$b;
var anObject$4 = anObject$a;
var tryToString$2 = tryToString$5;
var getIteratorMethod$1 = getIteratorMethod$2;
var $TypeError$6 = TypeError;
var getIterator$1 = function (argument, usingIterator) {
    var iteratorMethod = arguments.length < 2 ? getIteratorMethod$1(argument) : usingIterator;
    if (aCallable$7(iteratorMethod)) return anObject$4(call$8(iteratorMethod, argument));
    throw new $TypeError$6(tryToString$2(argument) + ' is not iterable');
};
getDefaultExportFromCjs(getIterator$1);

var call$7 = functionCall;
var anObject$3 = anObject$a;
var getMethod = getMethod$3;
var iteratorClose$1 = function (iterator, kind, value) {
    var innerResult, innerError;
    anObject$3(iterator);
    try {
        innerResult = getMethod(iterator, 'return');
        if (!innerResult) {
            if (kind === 'throw') throw value;
            return value;
        }
        innerResult = call$7(innerResult, iterator);
    } catch (error) {
        innerError = true;
        innerResult = error;
    }
    if (kind === 'throw') throw value;
    if (innerError) throw innerResult;
    anObject$3(innerResult);
    return value;
};
getDefaultExportFromCjs(iteratorClose$1);

var bind$3 = functionBindContext;
var call$6 = functionCall;
var anObject$2 = anObject$a;
var tryToString$1 = tryToString$5;
var isArrayIteratorMethod = isArrayIteratorMethod$1;
var lengthOfArrayLike$2 = lengthOfArrayLike$6;
var isPrototypeOf$8 = objectIsPrototypeOf;
var getIterator = getIterator$1;
var getIteratorMethod = getIteratorMethod$2;
var iteratorClose = iteratorClose$1;
var $TypeError$5 = TypeError;
var Result = function (stopped, result) {
    this.stopped = stopped;
    this.result = result;
};
var ResultPrototype = Result.prototype;
var iterate$5 = function (iterable, unboundFunction, options) {
    var that = options && options.that;
    var AS_ENTRIES = !!(options && options.AS_ENTRIES);
    var IS_RECORD = !!(options && options.IS_RECORD);
    var IS_ITERATOR = !!(options && options.IS_ITERATOR);
    var INTERRUPTED = !!(options && options.INTERRUPTED);
    var fn = bind$3(unboundFunction, that);
    var iterator, iterFn, index, length, result, next, step;
    var stop = function (condition) {
        if (iterator) iteratorClose(iterator, 'normal', condition);
        return new Result(true, condition);
    };
    var callFn = function (value) {
        if (AS_ENTRIES) {
            anObject$2(value);
            return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);
        }
        return INTERRUPTED ? fn(value, stop) : fn(value);
    };
    if (IS_RECORD) {
        iterator = iterable.iterator;
    } else if (IS_ITERATOR) {
        iterator = iterable;
    } else {
        iterFn = getIteratorMethod(iterable);
        if (!iterFn) throw new $TypeError$5(tryToString$1(iterable) + ' is not iterable');
        if (isArrayIteratorMethod(iterFn)) {
            for ((index = 0, length = lengthOfArrayLike$2(iterable)); length > index; index++) {
                result = callFn(iterable[index]);
                if (result && isPrototypeOf$8(ResultPrototype, result)) return result;
            }
            return new Result(false);
        }
        iterator = getIterator(iterable, iterFn);
    }
    next = IS_RECORD ? iterable.next : iterator.next;
    while (!(step = call$6(next, iterator)).done) {
        try {
            result = callFn(step.value);
        } catch (error) {
            iteratorClose(iterator, 'throw', error);
        }
        if (typeof result == 'object' && result && isPrototypeOf$8(ResultPrototype, result)) return result;
    }
    return new Result(false);
};
getDefaultExportFromCjs(iterate$5);

var toString$2 = toString$9;
var normalizeStringArgument$1 = function (argument, $default) {
    return argument === undefined ? arguments.length < 2 ? '' : $default : toString$2(argument);
};
getDefaultExportFromCjs(normalizeStringArgument$1);

var $$l = _export;
var isPrototypeOf$7 = objectIsPrototypeOf;
var getPrototypeOf$5 = objectGetPrototypeOf;
var setPrototypeOf$6 = objectSetPrototypeOf;
var copyConstructorProperties = copyConstructorProperties$1;
var create$6 = objectCreate;
var createNonEnumerableProperty = createNonEnumerableProperty$7;
var createPropertyDescriptor = createPropertyDescriptor$7;
var installErrorCause = installErrorCause$1;
var installErrorStack = errorStackInstall;
var iterate$4 = iterate$5;
var normalizeStringArgument = normalizeStringArgument$1;
var wellKnownSymbol$5 = wellKnownSymbol$o;
var TO_STRING_TAG = wellKnownSymbol$5('toStringTag');
var $Error = Error;
var push$6 = [].push;
var $AggregateError = function AggregateError(errors, message) {
    var isInstance = isPrototypeOf$7(AggregateErrorPrototype, this);
    var that;
    if (setPrototypeOf$6) {
        that = setPrototypeOf$6(new $Error(), isInstance ? getPrototypeOf$5(this) : AggregateErrorPrototype);
    } else {
        that = isInstance ? this : create$6(AggregateErrorPrototype);
        createNonEnumerableProperty(that, TO_STRING_TAG, 'Error');
    }
    if (message !== undefined) createNonEnumerableProperty(that, 'message', normalizeStringArgument(message));
    installErrorStack(that, $AggregateError, that.stack, 1);
    if (arguments.length > 2) installErrorCause(that, arguments[2]);
    var errorsArray = [];
    iterate$4(errors, push$6, {
        that: errorsArray
    });
    createNonEnumerableProperty(that, 'errors', errorsArray);
    return that;
};
if (setPrototypeOf$6) setPrototypeOf$6($AggregateError, $Error); else copyConstructorProperties($AggregateError, $Error, {
    name: true
});
var AggregateErrorPrototype = $AggregateError.prototype = create$6($Error.prototype, {
    constructor: createPropertyDescriptor(1, $AggregateError),
    message: createPropertyDescriptor(1, ''),
    name: createPropertyDescriptor(1, 'AggregateError')
});
$$l({
    global: true,
    constructor: true,
    arity: 2
}, {
    AggregateError: $AggregateError
});

var globalThis$8 = globalThis_1;
var userAgent$3 = environmentUserAgent;
var classof$1 = classofRaw$2;
var userAgentStartsWith = function (string) {
    return userAgent$3.slice(0, string.length) === string;
};
var environment = (function () {
    if (userAgentStartsWith('Bun/')) return 'BUN';
    if (userAgentStartsWith('Cloudflare-Workers')) return 'CLOUDFLARE';
    if (userAgentStartsWith('Deno/')) return 'DENO';
    if (userAgentStartsWith('Node.js/')) return 'NODE';
    if (globalThis$8.Bun && typeof Bun.version == 'string') return 'BUN';
    if (globalThis$8.Deno && typeof Deno.version == 'object') return 'DENO';
    if (classof$1(globalThis$8.process) === 'process') return 'NODE';
    if (globalThis$8.window && globalThis$8.document) return 'BROWSER';
    return 'REST';
})();
getDefaultExportFromCjs(environment);

var ENVIRONMENT$1 = environment;
var environmentIsNode = ENVIRONMENT$1 === 'NODE';
getDefaultExportFromCjs(environmentIsNode);

var getBuiltIn$3 = getBuiltIn$e;
var defineBuiltInAccessor = defineBuiltInAccessor$2;
var wellKnownSymbol$4 = wellKnownSymbol$o;
var DESCRIPTORS$3 = descriptors;
var SPECIES$3 = wellKnownSymbol$4('species');
var setSpecies$1 = function (CONSTRUCTOR_NAME) {
    var Constructor = getBuiltIn$3(CONSTRUCTOR_NAME);
    if (DESCRIPTORS$3 && Constructor && !Constructor[SPECIES$3]) {
        defineBuiltInAccessor(Constructor, SPECIES$3, {
            configurable: true,
            get: function () {
                return this;
            }
        });
    }
};
getDefaultExportFromCjs(setSpecies$1);

var isPrototypeOf$6 = objectIsPrototypeOf;
var $TypeError$4 = TypeError;
var anInstance$1 = function (it, Prototype) {
    if (isPrototypeOf$6(Prototype, it)) return it;
    throw new $TypeError$4('Incorrect invocation');
};
getDefaultExportFromCjs(anInstance$1);

var isConstructor$1 = isConstructor$3;
var tryToString = tryToString$5;
var $TypeError$3 = TypeError;
var aConstructor$1 = function (argument) {
    if (isConstructor$1(argument)) return argument;
    throw new $TypeError$3(tryToString(argument) + ' is not a constructor');
};
getDefaultExportFromCjs(aConstructor$1);

var anObject$1 = anObject$a;
var aConstructor = aConstructor$1;
var isNullOrUndefined = isNullOrUndefined$4;
var wellKnownSymbol$3 = wellKnownSymbol$o;
var SPECIES$2 = wellKnownSymbol$3('species');
var speciesConstructor$2 = function (O, defaultConstructor) {
    var C = anObject$1(O).constructor;
    var S;
    return C === undefined || isNullOrUndefined(S = anObject$1(C)[SPECIES$2]) ? defaultConstructor : aConstructor(S);
};
getDefaultExportFromCjs(speciesConstructor$2);

var $TypeError$2 = TypeError;
var validateArgumentsLength$1 = function (passed, required) {
    if (passed < required) throw new $TypeError$2('Not enough arguments');
    return passed;
};
getDefaultExportFromCjs(validateArgumentsLength$1);

var userAgent$2 = environmentUserAgent;
var environmentIsIos = (/(?:ipad|iphone|ipod).*applewebkit/i).test(userAgent$2);
getDefaultExportFromCjs(environmentIsIos);

var globalThis$7 = globalThis_1;
var apply$2 = functionApply;
var bind$2 = functionBindContext;
var isCallable$3 = isCallable$j;
var hasOwn = hasOwnProperty_1;
var fails$5 = fails$q;
var html = html$2;
var arraySlice = arraySlice$3;
var createElement = documentCreateElement$1;
var validateArgumentsLength = validateArgumentsLength$1;
var IS_IOS$1 = environmentIsIos;
var IS_NODE$2 = environmentIsNode;
var set = globalThis$7.setImmediate;
var clear = globalThis$7.clearImmediate;
var process$3 = globalThis$7.process;
var Dispatch = globalThis$7.Dispatch;
var Function$1 = globalThis$7.Function;
var MessageChannel = globalThis$7.MessageChannel;
var String$1 = globalThis$7.String;
var counter = 0;
var queue$2 = {};
var ONREADYSTATECHANGE = 'onreadystatechange';
var $location, defer, channel, port;
fails$5(function () {
    $location = globalThis$7.location;
});
var run = function (id) {
    if (hasOwn(queue$2, id)) {
        var fn = queue$2[id];
        delete queue$2[id];
        fn();
    }
};
var runner = function (id) {
    return function () {
        run(id);
    };
};
var eventListener = function (event) {
    run(event.data);
};
var globalPostMessageDefer = function (id) {
    globalThis$7.postMessage(String$1(id), $location.protocol + '//' + $location.host);
};
if (!set || !clear) {
    set = function setImmediate(handler) {
        validateArgumentsLength(arguments.length, 1);
        var fn = isCallable$3(handler) ? handler : Function$1(handler);
        var args = arraySlice(arguments, 1);
        queue$2[++counter] = function () {
            apply$2(fn, undefined, args);
        };
        defer(counter);
        return counter;
    };
    clear = function clearImmediate(id) {
        delete queue$2[id];
    };
    if (IS_NODE$2) {
        defer = function (id) {
            process$3.nextTick(runner(id));
        };
    } else if (Dispatch && Dispatch.now) {
        defer = function (id) {
            Dispatch.now(runner(id));
        };
    } else if (MessageChannel && !IS_IOS$1) {
        channel = new MessageChannel();
        port = channel.port2;
        channel.port1.onmessage = eventListener;
        defer = bind$2(port.postMessage, port);
    } else if (globalThis$7.addEventListener && isCallable$3(globalThis$7.postMessage) && !globalThis$7.importScripts && $location && $location.protocol !== 'file:' && !fails$5(globalPostMessageDefer)) {
        defer = globalPostMessageDefer;
        globalThis$7.addEventListener('message', eventListener, false);
    } else if ((ONREADYSTATECHANGE in createElement('script'))) {
        defer = function (id) {
            html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {
                html.removeChild(this);
                run(id);
            };
        };
    } else {
        defer = function (id) {
            setTimeout(runner(id), 0);
        };
    }
}
var task$1 = {
    set: set,
    clear: clear
};
getDefaultExportFromCjs(task$1);

var globalThis$6 = globalThis_1;
var DESCRIPTORS$2 = descriptors;
var getOwnPropertyDescriptor$1 = Object.getOwnPropertyDescriptor;
var safeGetBuiltIn$1 = function (name) {
    if (!DESCRIPTORS$2) return globalThis$6[name];
    var descriptor = getOwnPropertyDescriptor$1(globalThis$6, name);
    return descriptor && descriptor.value;
};
getDefaultExportFromCjs(safeGetBuiltIn$1);

var Queue$2 = function () {
    this.head = null;
    this.tail = null;
};
Queue$2.prototype = {
    add: function (item) {
        var entry = {
            item: item,
            next: null
        };
        var tail = this.tail;
        if (tail) tail.next = entry; else this.head = entry;
        this.tail = entry;
    },
    get: function () {
        var entry = this.head;
        if (entry) {
            var next = this.head = entry.next;
            if (next === null) this.tail = null;
            return entry.item;
        }
    }
};
var queue$1 = Queue$2;
getDefaultExportFromCjs(queue$1);

var userAgent$1 = environmentUserAgent;
var environmentIsIosPebble = (/ipad|iphone|ipod/i).test(userAgent$1) && typeof Pebble != 'undefined';
getDefaultExportFromCjs(environmentIsIosPebble);

var userAgent = environmentUserAgent;
var environmentIsWebosWebkit = (/web0s(?!.*chrome)/i).test(userAgent);
getDefaultExportFromCjs(environmentIsWebosWebkit);

var globalThis$5 = globalThis_1;
var safeGetBuiltIn = safeGetBuiltIn$1;
var bind$1 = functionBindContext;
var macrotask = task$1.set;
var Queue$1 = queue$1;
var IS_IOS = environmentIsIos;
var IS_IOS_PEBBLE = environmentIsIosPebble;
var IS_WEBOS_WEBKIT = environmentIsWebosWebkit;
var IS_NODE$1 = environmentIsNode;
var MutationObserver = globalThis$5.MutationObserver || globalThis$5.WebKitMutationObserver;
var document$2 = globalThis$5.document;
var process$2 = globalThis$5.process;
var Promise$2 = globalThis$5.Promise;
var microtask$1 = safeGetBuiltIn('queueMicrotask');
var notify$1, toggle, node, promise$5, then;
if (!microtask$1) {
    var queue = new Queue$1();
    var flush = function () {
        var parent, fn;
        if (IS_NODE$1 && (parent = process$2.domain)) parent.exit();
        while (fn = queue.get()) try {
            fn();
        } catch (error) {
            if (queue.head) notify$1();
            throw error;
        }
        if (parent) parent.enter();
    };
    if (!IS_IOS && !IS_NODE$1 && !IS_WEBOS_WEBKIT && MutationObserver && document$2) {
        toggle = true;
        node = document$2.createTextNode('');
        new MutationObserver(flush).observe(node, {
            characterData: true
        });
        notify$1 = function () {
            node.data = toggle = !toggle;
        };
    } else if (!IS_IOS_PEBBLE && Promise$2 && Promise$2.resolve) {
        promise$5 = Promise$2.resolve(undefined);
        promise$5.constructor = Promise$2;
        then = bind$1(promise$5.then, promise$5);
        notify$1 = function () {
            then(flush);
        };
    } else if (IS_NODE$1) {
        notify$1 = function () {
            process$2.nextTick(flush);
        };
    } else {
        macrotask = bind$1(macrotask, globalThis$5);
        notify$1 = function () {
            macrotask(flush);
        };
    }
    microtask$1 = function (fn) {
        if (!queue.head) notify$1();
        queue.add(fn);
    };
}
var microtask_1 = microtask$1;
getDefaultExportFromCjs(microtask_1);

var hostReportErrors$1 = function (a, b) {
    try {
        arguments.length === 1 ? console.error(a) : console.error(a, b);
    } catch (error) {}
};
getDefaultExportFromCjs(hostReportErrors$1);

var perform$6 = function (exec) {
    try {
        return {
            error: false,
            value: exec()
        };
    } catch (error) {
        return {
            error: true,
            value: error
        };
    }
};
getDefaultExportFromCjs(perform$6);

var globalThis$4 = globalThis_1;
var promiseNativeConstructor = globalThis$4.Promise;
getDefaultExportFromCjs(promiseNativeConstructor);

var globalThis$3 = globalThis_1;
var NativePromiseConstructor$5 = promiseNativeConstructor;
var isCallable$2 = isCallable$j;
var isForced = isForced_1;
var inspectSource = inspectSource$2;
var wellKnownSymbol$2 = wellKnownSymbol$o;
var ENVIRONMENT = environment;
var V8_VERSION = environmentV8Version;
var NativePromisePrototype$2 = NativePromiseConstructor$5 && NativePromiseConstructor$5.prototype;
var SPECIES$1 = wellKnownSymbol$2('species');
var SUBCLASSING = false;
var NATIVE_PROMISE_REJECTION_EVENT$1 = isCallable$2(globalThis$3.PromiseRejectionEvent);
var FORCED_PROMISE_CONSTRUCTOR$5 = isForced('Promise', function () {
    var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor$5);
    var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor$5);
    if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;
    if (!(NativePromisePrototype$2['catch'] && NativePromisePrototype$2['finally'])) return true;
    if (!V8_VERSION || V8_VERSION < 51 || !(/native code/).test(PROMISE_CONSTRUCTOR_SOURCE)) {
        var promise = new NativePromiseConstructor$5(function (resolve) {
            resolve(1);
        });
        var FakePromise = function (exec) {
            exec(function () {}, function () {});
        };
        var constructor = promise.constructor = {};
        constructor[SPECIES$1] = FakePromise;
        SUBCLASSING = promise.then(function () {}) instanceof FakePromise;
        if (!SUBCLASSING) return true;
    }
    return !GLOBAL_CORE_JS_PROMISE && (ENVIRONMENT === 'BROWSER' || ENVIRONMENT === 'DENO') && !NATIVE_PROMISE_REJECTION_EVENT$1;
});
var promiseConstructorDetection = {
    CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR$5,
    REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT$1,
    SUBCLASSING: SUBCLASSING
};
getDefaultExportFromCjs(promiseConstructorDetection);

var newPromiseCapability$2 = {};

var aCallable$6 = aCallable$b;
var $TypeError$1 = TypeError;
var PromiseCapability = function (C) {
    var resolve, reject;
    this.promise = new C(function ($$resolve, $$reject) {
        if (resolve !== undefined || reject !== undefined) throw new $TypeError$1('Bad Promise constructor');
        resolve = $$resolve;
        reject = $$reject;
    });
    this.resolve = aCallable$6(resolve);
    this.reject = aCallable$6(reject);
};
newPromiseCapability$2.f = function (C) {
    return new PromiseCapability(C);
};

var $$k = _export;
var IS_NODE = environmentIsNode;
var globalThis$2 = globalThis_1;
var call$5 = functionCall;
var defineBuiltIn = defineBuiltIn$5;
var setToStringTag = setToStringTag$7;
var setSpecies = setSpecies$1;
var aCallable$5 = aCallable$b;
var isCallable$1 = isCallable$j;
var isObject$2 = isObject$f;
var anInstance = anInstance$1;
var speciesConstructor$1 = speciesConstructor$2;
var task = task$1.set;
var microtask = microtask_1;
var hostReportErrors = hostReportErrors$1;
var perform$5 = perform$6;
var Queue = queue$1;
var InternalStateModule = internalState;
var NativePromiseConstructor$4 = promiseNativeConstructor;
var PromiseConstructorDetection = promiseConstructorDetection;
var newPromiseCapabilityModule$7 = newPromiseCapability$2;
var PROMISE = 'Promise';
var FORCED_PROMISE_CONSTRUCTOR$4 = PromiseConstructorDetection.CONSTRUCTOR;
var NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;
PromiseConstructorDetection.SUBCLASSING;
var getInternalPromiseState = InternalStateModule.getterFor(PROMISE);
var setInternalState = InternalStateModule.set;
var NativePromisePrototype$1 = NativePromiseConstructor$4 && NativePromiseConstructor$4.prototype;
var PromiseConstructor = NativePromiseConstructor$4;
var PromisePrototype = NativePromisePrototype$1;
var TypeError$1 = globalThis$2.TypeError;
var document$1 = globalThis$2.document;
var process$1 = globalThis$2.process;
var newPromiseCapability$1 = newPromiseCapabilityModule$7.f;
var newGenericPromiseCapability = newPromiseCapability$1;
var DISPATCH_EVENT = !!(document$1 && document$1.createEvent && globalThis$2.dispatchEvent);
var UNHANDLED_REJECTION = 'unhandledrejection';
var REJECTION_HANDLED = 'rejectionhandled';
var PENDING = 0;
var FULFILLED = 1;
var REJECTED = 2;
var HANDLED = 1;
var UNHANDLED = 2;
var Internal, OwnPromiseCapability, PromiseWrapper;
var isThenable = function (it) {
    var then;
    return isObject$2(it) && isCallable$1(then = it.then) ? then : false;
};
var callReaction = function (reaction, state) {
    var value = state.value;
    var ok = state.state === FULFILLED;
    var handler = ok ? reaction.ok : reaction.fail;
    var resolve = reaction.resolve;
    var reject = reaction.reject;
    var domain = reaction.domain;
    var result, then, exited;
    try {
        if (handler) {
            if (!ok) {
                if (state.rejection === UNHANDLED) onHandleUnhandled(state);
                state.rejection = HANDLED;
            }
            if (handler === true) result = value; else {
                if (domain) domain.enter();
                result = handler(value);
                if (domain) {
                    domain.exit();
                    exited = true;
                }
            }
            if (result === reaction.promise) {
                reject(new TypeError$1('Promise-chain cycle'));
            } else if (then = isThenable(result)) {
                call$5(then, result, resolve, reject);
            } else resolve(result);
        } else reject(value);
    } catch (error) {
        if (domain && !exited) domain.exit();
        reject(error);
    }
};
var notify = function (state, isReject) {
    if (state.notified) return;
    state.notified = true;
    microtask(function () {
        var reactions = state.reactions;
        var reaction;
        while (reaction = reactions.get()) {
            callReaction(reaction, state);
        }
        state.notified = false;
        if (isReject && !state.rejection) onUnhandled(state);
    });
};
var dispatchEvent = function (name, promise, reason) {
    var event, handler;
    if (DISPATCH_EVENT) {
        event = document$1.createEvent('Event');
        event.promise = promise;
        event.reason = reason;
        event.initEvent(name, false, true);
        globalThis$2.dispatchEvent(event);
    } else event = {
        promise: promise,
        reason: reason
    };
    if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = globalThis$2['on' + name])) handler(event); else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);
};
var onUnhandled = function (state) {
    call$5(task, globalThis$2, function () {
        var promise = state.facade;
        var value = state.value;
        var IS_UNHANDLED = isUnhandled(state);
        var result;
        if (IS_UNHANDLED) {
            result = perform$5(function () {
                if (IS_NODE) {
                    process$1.emit('unhandledRejection', value, promise);
                } else dispatchEvent(UNHANDLED_REJECTION, promise, value);
            });
            state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;
            if (result.error) throw result.value;
        }
    });
};
var isUnhandled = function (state) {
    return state.rejection !== HANDLED && !state.parent;
};
var onHandleUnhandled = function (state) {
    call$5(task, globalThis$2, function () {
        var promise = state.facade;
        if (IS_NODE) {
            process$1.emit('rejectionHandled', promise);
        } else dispatchEvent(REJECTION_HANDLED, promise, state.value);
    });
};
var bind = function (fn, state, unwrap) {
    return function (value) {
        fn(state, value, unwrap);
    };
};
var internalReject = function (state, value, unwrap) {
    if (state.done) return;
    state.done = true;
    if (unwrap) state = unwrap;
    state.value = value;
    state.state = REJECTED;
    notify(state, true);
};
var internalResolve = function (state, value, unwrap) {
    if (state.done) return;
    state.done = true;
    if (unwrap) state = unwrap;
    try {
        if (state.facade === value) throw new TypeError$1("Promise can't be resolved itself");
        var then = isThenable(value);
        if (then) {
            microtask(function () {
                var wrapper = {
                    done: false
                };
                try {
                    call$5(then, value, bind(internalResolve, wrapper, state), bind(internalReject, wrapper, state));
                } catch (error) {
                    internalReject(wrapper, error, state);
                }
            });
        } else {
            state.value = value;
            state.state = FULFILLED;
            notify(state, false);
        }
    } catch (error) {
        internalReject({
            done: false
        }, error, state);
    }
};
if (FORCED_PROMISE_CONSTRUCTOR$4) {
    PromiseConstructor = function Promise(executor) {
        anInstance(this, PromisePrototype);
        aCallable$5(executor);
        call$5(Internal, this);
        var state = getInternalPromiseState(this);
        try {
            executor(bind(internalResolve, state), bind(internalReject, state));
        } catch (error) {
            internalReject(state, error);
        }
    };
    PromisePrototype = PromiseConstructor.prototype;
    Internal = function Promise(executor) {
        setInternalState(this, {
            type: PROMISE,
            done: false,
            notified: false,
            parent: false,
            reactions: new Queue(),
            rejection: false,
            state: PENDING,
            value: null
        });
    };
    Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {
        var state = getInternalPromiseState(this);
        var reaction = newPromiseCapability$1(speciesConstructor$1(this, PromiseConstructor));
        state.parent = true;
        reaction.ok = isCallable$1(onFulfilled) ? onFulfilled : true;
        reaction.fail = isCallable$1(onRejected) && onRejected;
        reaction.domain = IS_NODE ? process$1.domain : undefined;
        if (state.state === PENDING) state.reactions.add(reaction); else microtask(function () {
            callReaction(reaction, state);
        });
        return reaction.promise;
    });
    OwnPromiseCapability = function () {
        var promise = new Internal();
        var state = getInternalPromiseState(promise);
        this.promise = promise;
        this.resolve = bind(internalResolve, state);
        this.reject = bind(internalReject, state);
    };
    newPromiseCapabilityModule$7.f = newPromiseCapability$1 = function (C) {
        return C === PromiseConstructor || C === PromiseWrapper ? new OwnPromiseCapability(C) : newGenericPromiseCapability(C);
    };
}
$$k({
    global: true,
    constructor: true,
    wrap: true,
    forced: FORCED_PROMISE_CONSTRUCTOR$4
}, {
    Promise: PromiseConstructor
});
setToStringTag(PromiseConstructor, PROMISE, false, true);
setSpecies(PROMISE);

var wellKnownSymbol$1 = wellKnownSymbol$o;
var ITERATOR = wellKnownSymbol$1('iterator');
var SAFE_CLOSING = false;
try {
    var called = 0;
    var iteratorWithReturn = {
        next: function () {
            return {
                done: !!called++
            };
        },
        'return': function () {
            SAFE_CLOSING = true;
        }
    };
    iteratorWithReturn[ITERATOR] = function () {
        return this;
    };
    Array.from(iteratorWithReturn, function () {
        throw 2;
    });
} catch (error) {}
var checkCorrectnessOfIteration$1 = function (exec, SKIP_CLOSING) {
    try {
        if (!SKIP_CLOSING && !SAFE_CLOSING) return false;
    } catch (error) {
        return false;
    }
    var ITERATION_SUPPORT = false;
    try {
        var object = {};
        object[ITERATOR] = function () {
            return {
                next: function () {
                    return {
                        done: ITERATION_SUPPORT = true
                    };
                }
            };
        };
        exec(object);
    } catch (error) {}
    return ITERATION_SUPPORT;
};
getDefaultExportFromCjs(checkCorrectnessOfIteration$1);

var NativePromiseConstructor$3 = promiseNativeConstructor;
var checkCorrectnessOfIteration = checkCorrectnessOfIteration$1;
var FORCED_PROMISE_CONSTRUCTOR$3 = promiseConstructorDetection.CONSTRUCTOR;
var promiseStaticsIncorrectIteration = FORCED_PROMISE_CONSTRUCTOR$3 || !checkCorrectnessOfIteration(function (iterable) {
    NativePromiseConstructor$3.all(iterable).then(undefined, function () {});
});
getDefaultExportFromCjs(promiseStaticsIncorrectIteration);

var $$j = _export;
var call$4 = functionCall;
var aCallable$4 = aCallable$b;
var newPromiseCapabilityModule$6 = newPromiseCapability$2;
var perform$4 = perform$6;
var iterate$3 = iterate$5;
var PROMISE_STATICS_INCORRECT_ITERATION$3 = promiseStaticsIncorrectIteration;
$$j({
    target: 'Promise',
    stat: true,
    forced: PROMISE_STATICS_INCORRECT_ITERATION$3
}, {
    all: function all(iterable) {
        var C = this;
        var capability = newPromiseCapabilityModule$6.f(C);
        var resolve = capability.resolve;
        var reject = capability.reject;
        var result = perform$4(function () {
            var $promiseResolve = aCallable$4(C.resolve);
            var values = [];
            var counter = 0;
            var remaining = 1;
            iterate$3(iterable, function (promise) {
                var index = counter++;
                var alreadyCalled = false;
                remaining++;
                call$4($promiseResolve, C, promise).then(function (value) {
                    if (alreadyCalled) return;
                    alreadyCalled = true;
                    values[index] = value;
                    --remaining || resolve(values);
                }, reject);
            });
            --remaining || resolve(values);
        });
        if (result.error) reject(result.value);
        return capability.promise;
    }
});

var $$i = _export;
var FORCED_PROMISE_CONSTRUCTOR$2 = promiseConstructorDetection.CONSTRUCTOR;
var NativePromiseConstructor$2 = promiseNativeConstructor;
NativePromiseConstructor$2 && NativePromiseConstructor$2.prototype;
$$i({
    target: 'Promise',
    proto: true,
    forced: FORCED_PROMISE_CONSTRUCTOR$2,
    real: true
}, {
    'catch': function (onRejected) {
        return this.then(undefined, onRejected);
    }
});

var $$h = _export;
var call$3 = functionCall;
var aCallable$3 = aCallable$b;
var newPromiseCapabilityModule$5 = newPromiseCapability$2;
var perform$3 = perform$6;
var iterate$2 = iterate$5;
var PROMISE_STATICS_INCORRECT_ITERATION$2 = promiseStaticsIncorrectIteration;
$$h({
    target: 'Promise',
    stat: true,
    forced: PROMISE_STATICS_INCORRECT_ITERATION$2
}, {
    race: function race(iterable) {
        var C = this;
        var capability = newPromiseCapabilityModule$5.f(C);
        var reject = capability.reject;
        var result = perform$3(function () {
            var $promiseResolve = aCallable$3(C.resolve);
            iterate$2(iterable, function (promise) {
                call$3($promiseResolve, C, promise).then(capability.resolve, reject);
            });
        });
        if (result.error) reject(result.value);
        return capability.promise;
    }
});

var $$g = _export;
var newPromiseCapabilityModule$4 = newPromiseCapability$2;
var FORCED_PROMISE_CONSTRUCTOR$1 = promiseConstructorDetection.CONSTRUCTOR;
$$g({
    target: 'Promise',
    stat: true,
    forced: FORCED_PROMISE_CONSTRUCTOR$1
}, {
    reject: function reject(r) {
        var capability = newPromiseCapabilityModule$4.f(this);
        var capabilityReject = capability.reject;
        capabilityReject(r);
        return capability.promise;
    }
});

var anObject = anObject$a;
var isObject$1 = isObject$f;
var newPromiseCapability = newPromiseCapability$2;
var promiseResolve$2 = function (C, x) {
    anObject(C);
    if (isObject$1(x) && x.constructor === C) return x;
    var promiseCapability = newPromiseCapability.f(C);
    var resolve = promiseCapability.resolve;
    resolve(x);
    return promiseCapability.promise;
};
getDefaultExportFromCjs(promiseResolve$2);

var $$f = _export;
var getBuiltIn$2 = getBuiltIn$e;
var IS_PURE = isPure;
var NativePromiseConstructor$1 = promiseNativeConstructor;
var FORCED_PROMISE_CONSTRUCTOR = promiseConstructorDetection.CONSTRUCTOR;
var promiseResolve$1 = promiseResolve$2;
var PromiseConstructorWrapper = getBuiltIn$2('Promise');
var CHECK_WRAPPER = !FORCED_PROMISE_CONSTRUCTOR;
$$f({
    target: 'Promise',
    stat: true,
    forced: IS_PURE 
}, {
    resolve: function resolve(x) {
        return promiseResolve$1(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor$1 : this, x);
    }
});

var $$e = _export;
var call$2 = functionCall;
var aCallable$2 = aCallable$b;
var newPromiseCapabilityModule$3 = newPromiseCapability$2;
var perform$2 = perform$6;
var iterate$1 = iterate$5;
var PROMISE_STATICS_INCORRECT_ITERATION$1 = promiseStaticsIncorrectIteration;
$$e({
    target: 'Promise',
    stat: true,
    forced: PROMISE_STATICS_INCORRECT_ITERATION$1
}, {
    allSettled: function allSettled(iterable) {
        var C = this;
        var capability = newPromiseCapabilityModule$3.f(C);
        var resolve = capability.resolve;
        var reject = capability.reject;
        var result = perform$2(function () {
            var promiseResolve = aCallable$2(C.resolve);
            var values = [];
            var counter = 0;
            var remaining = 1;
            iterate$1(iterable, function (promise) {
                var index = counter++;
                var alreadyCalled = false;
                remaining++;
                call$2(promiseResolve, C, promise).then(function (value) {
                    if (alreadyCalled) return;
                    alreadyCalled = true;
                    values[index] = {
                        status: 'fulfilled',
                        value: value
                    };
                    --remaining || resolve(values);
                }, function (error) {
                    if (alreadyCalled) return;
                    alreadyCalled = true;
                    values[index] = {
                        status: 'rejected',
                        reason: error
                    };
                    --remaining || resolve(values);
                });
            });
            --remaining || resolve(values);
        });
        if (result.error) reject(result.value);
        return capability.promise;
    }
});

var $$d = _export;
var call$1 = functionCall;
var aCallable$1 = aCallable$b;
var getBuiltIn$1 = getBuiltIn$e;
var newPromiseCapabilityModule$2 = newPromiseCapability$2;
var perform$1 = perform$6;
var iterate = iterate$5;
var PROMISE_STATICS_INCORRECT_ITERATION = promiseStaticsIncorrectIteration;
var PROMISE_ANY_ERROR = 'No one promise resolved';
$$d({
    target: 'Promise',
    stat: true,
    forced: PROMISE_STATICS_INCORRECT_ITERATION
}, {
    any: function any(iterable) {
        var C = this;
        var AggregateError = getBuiltIn$1('AggregateError');
        var capability = newPromiseCapabilityModule$2.f(C);
        var resolve = capability.resolve;
        var reject = capability.reject;
        var result = perform$1(function () {
            var promiseResolve = aCallable$1(C.resolve);
            var errors = [];
            var counter = 0;
            var remaining = 1;
            var alreadyResolved = false;
            iterate(iterable, function (promise) {
                var index = counter++;
                var alreadyRejected = false;
                remaining++;
                call$1(promiseResolve, C, promise).then(function (value) {
                    if (alreadyRejected || alreadyResolved) return;
                    alreadyResolved = true;
                    resolve(value);
                }, function (error) {
                    if (alreadyRejected || alreadyResolved) return;
                    alreadyRejected = true;
                    errors[index] = error;
                    --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));
                });
            });
            --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));
        });
        if (result.error) reject(result.value);
        return capability.promise;
    }
});

var $$c = _export;
var newPromiseCapabilityModule$1 = newPromiseCapability$2;
$$c({
    target: 'Promise',
    stat: true
}, {
    withResolvers: function withResolvers() {
        var promiseCapability = newPromiseCapabilityModule$1.f(this);
        return {
            promise: promiseCapability.promise,
            resolve: promiseCapability.resolve,
            reject: promiseCapability.reject
        };
    }
});

var $$b = _export;
var NativePromiseConstructor = promiseNativeConstructor;
var fails$4 = fails$q;
var getBuiltIn = getBuiltIn$e;
var isCallable = isCallable$j;
var speciesConstructor = speciesConstructor$2;
var promiseResolve = promiseResolve$2;
var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;
var NON_GENERIC = !!NativePromiseConstructor && fails$4(function () {
    NativePromisePrototype['finally'].call({
        then: function () {}
    }, function () {});
});
$$b({
    target: 'Promise',
    proto: true,
    real: true,
    forced: NON_GENERIC
}, {
    'finally': function (onFinally) {
        var C = speciesConstructor(this, getBuiltIn('Promise'));
        var isFunction = isCallable(onFinally);
        return this.then(isFunction ? function (x) {
            return promiseResolve(C, onFinally()).then(function () {
                return x;
            });
        } : onFinally, isFunction ? function (e) {
            return promiseResolve(C, onFinally()).then(function () {
                throw e;
            });
        } : onFinally);
    }
});

var path$4 = path$f;
var promise$4 = path$4.Promise;
getDefaultExportFromCjs(promise$4);

var parent$q = promise$4;
var promise$3 = parent$q;
getDefaultExportFromCjs(promise$3);

var $$a = _export;
var globalThis$1 = globalThis_1;
var apply$1 = functionApply;
var slice$6 = arraySlice$3;
var newPromiseCapabilityModule = newPromiseCapability$2;
var aCallable = aCallable$b;
var perform = perform$6;
var Promise$1 = globalThis$1.Promise;
var ACCEPT_ARGUMENTS = false;
var FORCED$2 = !Promise$1 || !Promise$1['try'] || perform(function () {
    Promise$1['try'](function (argument) {
        ACCEPT_ARGUMENTS = argument === 8;
    }, 8);
}).error || !ACCEPT_ARGUMENTS;
$$a({
    target: 'Promise',
    stat: true,
    forced: FORCED$2
}, {
    'try': function (callbackfn) {
        var args = arguments.length > 1 ? slice$6(arguments, 1) : [];
        var promiseCapability = newPromiseCapabilityModule.f(this);
        var result = perform(function () {
            return apply$1(aCallable(callbackfn), undefined, args);
        });
        (result.error ? promiseCapability.reject : promiseCapability.resolve)(result.value);
        return promiseCapability.promise;
    }
});

var parent$p = promise$3;
var promise$2 = parent$p;
getDefaultExportFromCjs(promise$2);

var parent$o = promise$2;
var promise$1 = parent$o;
getDefaultExportFromCjs(promise$1);

var promise = promise$1;
var _Promise = getDefaultExportFromCjs(promise);

function asyncGeneratorStep(n, t, e, r, o, a, c) {
    try {
        var i = n[a](c), u = i.value;
    } catch (n) {
        return void e(n);
    }
    i.done ? t(u) : _Promise.resolve(u).then(r, o);
}
function _asyncToGenerator(n) {
    return function () {
        var t = this, e = arguments;
        return new _Promise(function (r, o) {
            var a = n.apply(t, e);
            function _next(n) {
                asyncGeneratorStep(a, r, o, _next, _throw, "next", n);
            }
            function _throw(n) {
                asyncGeneratorStep(a, r, o, _next, _throw, "throw", n);
            }
            _next(void 0);
        });
    };
}

var regeneratorRuntime$1 = {exports: {}};

var _typeof = {exports: {}};

(function (module) {
    var _Symbol = symbol;
    var _Symbol$iterator = iterator;
    function _typeof(o) {
        "@babel/helpers - typeof";
        return (module.exports = _typeof = "function" == typeof _Symbol && "symbol" == typeof _Symbol$iterator ? function (o) {
            return typeof o;
        } : function (o) {
            return o && "function" == typeof _Symbol && o.constructor === _Symbol && o !== _Symbol.prototype ? "symbol" : typeof o;
        }, module.exports.__esModule = true, module.exports["default"] = module.exports, _typeof(o));
    }
    (module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports);
})(_typeof);
var _typeofExports = _typeof.exports;
getDefaultExportFromCjs(_typeofExports);

var $$9 = _export;
var DESCRIPTORS$1 = descriptors;
var create$5 = objectCreate;
$$9({
    target: 'Object',
    stat: true,
    sham: !DESCRIPTORS$1
}, {
    create: create$5
});

var path$3 = path$f;
var Object$1 = path$3.Object;
var create$4 = function create(P, D) {
    return Object$1.create(P, D);
};
getDefaultExportFromCjs(create$4);

var parent$n = create$4;
var create$3 = parent$n;
getDefaultExportFromCjs(create$3);

var parent$m = create$3;
var create$2 = parent$m;
getDefaultExportFromCjs(create$2);

var parent$l = create$2;
var create$1 = parent$l;
getDefaultExportFromCjs(create$1);

var create = create$1;
getDefaultExportFromCjs(create);

var $$8 = _export;
var fails$3 = fails$q;
var toObject$2 = toObject$9;
var nativeGetPrototypeOf = objectGetPrototypeOf;
var CORRECT_PROTOTYPE_GETTER = correctPrototypeGetter;
var FAILS_ON_PRIMITIVES = fails$3(function () {
    nativeGetPrototypeOf(1);
});
$$8({
    target: 'Object',
    stat: true,
    forced: FAILS_ON_PRIMITIVES,
    sham: !CORRECT_PROTOTYPE_GETTER
}, {
    getPrototypeOf: function getPrototypeOf(it) {
        return nativeGetPrototypeOf(toObject$2(it));
    }
});

var path$2 = path$f;
var getPrototypeOf$4 = path$2.Object.getPrototypeOf;
getDefaultExportFromCjs(getPrototypeOf$4);

var parent$k = getPrototypeOf$4;
var getPrototypeOf$3 = parent$k;
getDefaultExportFromCjs(getPrototypeOf$3);

var parent$j = getPrototypeOf$3;
var getPrototypeOf$2 = parent$j;
getDefaultExportFromCjs(getPrototypeOf$2);

var parent$i = getPrototypeOf$2;
var getPrototypeOf$1 = parent$i;
getDefaultExportFromCjs(getPrototypeOf$1);

var getPrototypeOf = getPrototypeOf$1;
getDefaultExportFromCjs(getPrototypeOf);

var parent$h = forEach$4;
var forEach$2 = parent$h;
getDefaultExportFromCjs(forEach$2);

var parent$g = forEach$2;
var forEach$1 = parent$g;
getDefaultExportFromCjs(forEach$1);

var forEach = forEach$1;
getDefaultExportFromCjs(forEach);

var DESCRIPTORS = descriptors;
var isArray$2 = isArray$6;
var $TypeError = TypeError;
var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
var SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !(function () {
    if (this !== undefined) return true;
    try {
        Object.defineProperty([], 'length', {
            writable: false
        }).length = 1;
    } catch (error) {
        return error instanceof TypeError;
    }
})();
var arraySetLength = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {
    if (isArray$2(O) && !getOwnPropertyDescriptor(O, 'length').writable) {
        throw new $TypeError('Cannot set read only .length');
    }
    return O.length = length;
} : function (O, length) {
    return O.length = length;
};
getDefaultExportFromCjs(arraySetLength);

var $$7 = _export;
var toObject$1 = toObject$9;
var lengthOfArrayLike$1 = lengthOfArrayLike$6;
var setArrayLength = arraySetLength;
var doesNotExceedSafeInteger = doesNotExceedSafeInteger$2;
var fails$2 = fails$q;
var INCORRECT_TO_LENGTH = fails$2(function () {
    return [].push.call({
        length: 0x100000000
    }, 1) !== 4294967297;
});
var properErrorOnNonWritableLength = function () {
    try {
        Object.defineProperty([], 'length', {
            writable: false
        }).push();
    } catch (error) {
        return error instanceof TypeError;
    }
};
var FORCED$1 = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength();
$$7({
    target: 'Array',
    proto: true,
    arity: 1,
    forced: FORCED$1
}, {
    push: function push(item) {
        var O = toObject$1(this);
        var len = lengthOfArrayLike$1(O);
        var argCount = arguments.length;
        doesNotExceedSafeInteger(len + argCount);
        for (var i = 0; i < argCount; i++) {
            O[len] = arguments[i];
            len++;
        }
        setArrayLength(O, len);
        return len;
    }
});

var getBuiltInPrototypeMethod$5 = getBuiltInPrototypeMethod$9;
var push$5 = getBuiltInPrototypeMethod$5('Array', 'push');
getDefaultExportFromCjs(push$5);

var isPrototypeOf$5 = objectIsPrototypeOf;
var method$5 = push$5;
var ArrayPrototype$5 = Array.prototype;
var push$4 = function (it) {
    var own = it.push;
    return it === ArrayPrototype$5 || isPrototypeOf$5(ArrayPrototype$5, it) && own === ArrayPrototype$5.push ? method$5 : own;
};
getDefaultExportFromCjs(push$4);

var parent$f = push$4;
var push$3 = parent$f;
getDefaultExportFromCjs(push$3);

var parent$e = push$3;
var push$2 = parent$e;
getDefaultExportFromCjs(push$2);

var parent$d = push$2;
var push$1 = parent$d;
getDefaultExportFromCjs(push$1);

var push = push$1;
getDefaultExportFromCjs(push);

var $$6 = _export;
var setPrototypeOf$5 = objectSetPrototypeOf;
$$6({
    target: 'Object',
    stat: true
}, {
    setPrototypeOf: setPrototypeOf$5
});

var path$1 = path$f;
var setPrototypeOf$4 = path$1.Object.setPrototypeOf;
getDefaultExportFromCjs(setPrototypeOf$4);

var parent$c = setPrototypeOf$4;
var setPrototypeOf$3 = parent$c;
getDefaultExportFromCjs(setPrototypeOf$3);

var parent$b = setPrototypeOf$3;
var setPrototypeOf$2 = parent$b;
getDefaultExportFromCjs(setPrototypeOf$2);

var parent$a = setPrototypeOf$2;
var setPrototypeOf$1 = parent$a;
getDefaultExportFromCjs(setPrototypeOf$1);

var setPrototypeOf = setPrototypeOf$1;
getDefaultExportFromCjs(setPrototypeOf);

var $$5 = _export;
var uncurryThis$2 = functionUncurryThis;
var isArray$1 = isArray$6;
var nativeReverse = uncurryThis$2([].reverse);
var test = [1, 2];
$$5({
    target: 'Array',
    proto: true,
    forced: String(test) === String(test.reverse())
}, {
    reverse: function reverse() {
        if (isArray$1(this)) this.length = this.length;
        return nativeReverse(this);
    }
});

var getBuiltInPrototypeMethod$4 = getBuiltInPrototypeMethod$9;
var reverse$5 = getBuiltInPrototypeMethod$4('Array', 'reverse');
getDefaultExportFromCjs(reverse$5);

var isPrototypeOf$4 = objectIsPrototypeOf;
var method$4 = reverse$5;
var ArrayPrototype$4 = Array.prototype;
var reverse$4 = function (it) {
    var own = it.reverse;
    return it === ArrayPrototype$4 || isPrototypeOf$4(ArrayPrototype$4, it) && own === ArrayPrototype$4.reverse ? method$4 : own;
};
getDefaultExportFromCjs(reverse$4);

var parent$9 = reverse$4;
var reverse$3 = parent$9;
getDefaultExportFromCjs(reverse$3);

var parent$8 = reverse$3;
var reverse$2 = parent$8;
getDefaultExportFromCjs(reverse$2);

var parent$7 = reverse$2;
var reverse$1 = parent$7;
getDefaultExportFromCjs(reverse$1);

var reverse = reverse$1;
getDefaultExportFromCjs(reverse);

var $$4 = _export;
var isArray = isArray$6;
var isConstructor = isConstructor$3;
var isObject = isObject$f;
var toAbsoluteIndex = toAbsoluteIndex$2;
var lengthOfArrayLike = lengthOfArrayLike$6;
var toIndexedObject = toIndexedObject$a;
var createProperty = createProperty$3;
var wellKnownSymbol = wellKnownSymbol$o;
var arrayMethodHasSpeciesSupport$2 = arrayMethodHasSpeciesSupport$4;
var nativeSlice = arraySlice$3;
var HAS_SPECIES_SUPPORT$2 = arrayMethodHasSpeciesSupport$2('slice');
var SPECIES = wellKnownSymbol('species');
var $Array = Array;
var max = Math.max;
$$4({
    target: 'Array',
    proto: true,
    forced: !HAS_SPECIES_SUPPORT$2
}, {
    slice: function slice(start, end) {
        var O = toIndexedObject(this);
        var length = lengthOfArrayLike(O);
        var k = toAbsoluteIndex(start, length);
        var fin = toAbsoluteIndex(end === undefined ? length : end, length);
        var Constructor, result, n;
        if (isArray(O)) {
            Constructor = O.constructor;
            if (isConstructor(Constructor) && (Constructor === $Array || isArray(Constructor.prototype))) {
                Constructor = undefined;
            } else if (isObject(Constructor)) {
                Constructor = Constructor[SPECIES];
                if (Constructor === null) Constructor = undefined;
            }
            if (Constructor === $Array || Constructor === undefined) {
                return nativeSlice(O, k, fin);
            }
        }
        result = new (Constructor === undefined ? $Array : Constructor)(max(fin - k, 0));
        for (n = 0; k < fin; (k++, n++)) if ((k in O)) createProperty(result, n, O[k]);
        result.length = n;
        return result;
    }
});

var getBuiltInPrototypeMethod$3 = getBuiltInPrototypeMethod$9;
var slice$5 = getBuiltInPrototypeMethod$3('Array', 'slice');
getDefaultExportFromCjs(slice$5);

var isPrototypeOf$3 = objectIsPrototypeOf;
var method$3 = slice$5;
var ArrayPrototype$3 = Array.prototype;
var slice$4 = function (it) {
    var own = it.slice;
    return it === ArrayPrototype$3 || isPrototypeOf$3(ArrayPrototype$3, it) && own === ArrayPrototype$3.slice ? method$3 : own;
};
getDefaultExportFromCjs(slice$4);

var parent$6 = slice$4;
var slice$3 = parent$6;
getDefaultExportFromCjs(slice$3);

var parent$5 = slice$3;
var slice$2 = parent$5;
getDefaultExportFromCjs(slice$2);

var parent$4 = slice$2;
var slice$1 = parent$4;
getDefaultExportFromCjs(slice$1);

var slice = slice$1;
getDefaultExportFromCjs(slice);

(function (module) {
    var _typeof = _typeofExports["default"];
    var _Object$defineProperty = defineProperty$4;
    var _Symbol = symbol;
    var _Object$create = create;
    var _Object$getPrototypeOf = getPrototypeOf;
    var _forEachInstanceProperty = forEach;
    var _pushInstanceProperty = push;
    var _Object$setPrototypeOf = setPrototypeOf;
    var _Promise = promise;
    var _reverseInstanceProperty = reverse;
    var _sliceInstanceProperty = slice;
    function _regeneratorRuntime() {
        (module.exports = _regeneratorRuntime = function _regeneratorRuntime() {
            return e;
        }, module.exports.__esModule = true, module.exports["default"] = module.exports);
        var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = _Object$defineProperty || (function (t, e, r) {
            t[e] = r.value;
        }), i = "function" == typeof _Symbol ? _Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag";
        function define(t, e, r) {
            return (_Object$defineProperty(t, e, {
                value: r,
                enumerable: !0,
                configurable: !0,
                writable: !0
            }), t[e]);
        }
        try {
            define({}, "");
        } catch (t) {
            define = function define(t, e, r) {
                return t[e] = r;
            };
        }
        function wrap(t, e, r, n) {
            var i = e && e.prototype instanceof Generator ? e : Generator, a = _Object$create(i.prototype), c = new Context(n || []);
            return (o(a, "_invoke", {
                value: makeInvokeMethod(t, r, c)
            }), a);
        }
        function tryCatch(t, e, r) {
            try {
                return {
                    type: "normal",
                    arg: t.call(e, r)
                };
            } catch (t) {
                return {
                    type: "throw",
                    arg: t
                };
            }
        }
        e.wrap = wrap;
        var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {};
        function Generator() {}
        function GeneratorFunction() {}
        function GeneratorFunctionPrototype() {}
        var p = {};
        define(p, a, function () {
            return this;
        });
        var d = _Object$getPrototypeOf, v = d && d(d(values([])));
        v && v !== r && n.call(v, a) && (p = v);
        var g = GeneratorFunctionPrototype.prototype = Generator.prototype = _Object$create(p);
        function defineIteratorMethods(t) {
            var _context;
            _forEachInstanceProperty(_context = ["next", "throw", "return"]).call(_context, function (e) {
                define(t, e, function (t) {
                    return this._invoke(e, t);
                });
            });
        }
        function AsyncIterator(t, e) {
            function invoke(r, o, i, a) {
                var c = tryCatch(t[r], t, o);
                if ("throw" !== c.type) {
                    var u = c.arg, h = u.value;
                    return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) {
                        invoke("next", t, i, a);
                    }, function (t) {
                        invoke("throw", t, i, a);
                    }) : e.resolve(h).then(function (t) {
                        (u.value = t, i(u));
                    }, function (t) {
                        return invoke("throw", t, i, a);
                    });
                }
                a(c.arg);
            }
            var r;
            o(this, "_invoke", {
                value: function value(t, n) {
                    function callInvokeWithMethodAndArg() {
                        return new e(function (e, r) {
                            invoke(t, n, e, r);
                        });
                    }
                    return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();
                }
            });
        }
        function makeInvokeMethod(e, r, n) {
            var o = h;
            return function (i, a) {
                if (o === f) throw Error("Generator is already running");
                if (o === s) {
                    if ("throw" === i) throw a;
                    return {
                        value: t,
                        done: !0
                    };
                }
                for ((n.method = i, n.arg = a); ; ) {
                    var c = n.delegate;
                    if (c) {
                        var u = maybeInvokeDelegate(c, n);
                        if (u) {
                            if (u === y) continue;
                            return u;
                        }
                    }
                    if ("next" === n.method) n.sent = n._sent = n.arg; else if ("throw" === n.method) {
                        if (o === h) throw (o = s, n.arg);
                        n.dispatchException(n.arg);
                    } else "return" === n.method && n.abrupt("return", n.arg);
                    o = f;
                    var p = tryCatch(e, r, n);
                    if ("normal" === p.type) {
                        if ((o = n.done ? s : l, p.arg === y)) continue;
                        return {
                            value: p.arg,
                            done: n.done
                        };
                    }
                    "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg);
                }
            };
        }
        function maybeInvokeDelegate(e, r) {
            var n = r.method, o = e.iterator[n];
            if (o === t) return (r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y);
            var i = tryCatch(o, e.iterator, r.arg);
            if ("throw" === i.type) return (r.method = "throw", r.arg = i.arg, r.delegate = null, y);
            var a = i.arg;
            return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y);
        }
        function pushTryEntry(t) {
            var _context2;
            var e = {
                tryLoc: t[0]
            };
            ((1 in t) && (e.catchLoc = t[1]), (2 in t) && (e.finallyLoc = t[2], e.afterLoc = t[3]), _pushInstanceProperty(_context2 = this.tryEntries).call(_context2, e));
        }
        function resetTryEntry(t) {
            var e = t.completion || ({});
            (e.type = "normal", delete e.arg, t.completion = e);
        }
        function Context(t) {
            (this.tryEntries = [{
                tryLoc: "root"
            }], _forEachInstanceProperty(t).call(t, pushTryEntry, this), this.reset(!0));
        }
        function values(e) {
            if (e || "" === e) {
                var r = e[a];
                if (r) return r.call(e);
                if ("function" == typeof e.next) return e;
                if (!isNaN(e.length)) {
                    var o = -1, i = function next() {
                        for (; ++o < e.length; ) if (n.call(e, o)) return (next.value = e[o], next.done = !1, next);
                        return (next.value = t, next.done = !0, next);
                    };
                    return i.next = i;
                }
            }
            throw new TypeError(_typeof(e) + " is not iterable");
        }
        return (GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", {
            value: GeneratorFunctionPrototype,
            configurable: !0
        }), o(GeneratorFunctionPrototype, "constructor", {
            value: GeneratorFunction,
            configurable: !0
        }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) {
            var e = "function" == typeof t && t.constructor;
            return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name));
        }, e.mark = function (t) {
            return (_Object$setPrototypeOf ? _Object$setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = _Object$create(g), t);
        }, e.awrap = function (t) {
            return {
                __await: t
            };
        }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {
            return this;
        }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {
            void 0 === i && (i = _Promise);
            var a = new AsyncIterator(wrap(t, r, n, o), i);
            return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {
                return t.done ? t.value : a.next();
            });
        }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () {
            return this;
        }), define(g, "toString", function () {
            return "[object Generator]";
        }), e.keys = function (t) {
            var e = Object(t), r = [];
            for (var n in e) _pushInstanceProperty(r).call(r, n);
            return (_reverseInstanceProperty(r).call(r), function next() {
                for (; r.length; ) {
                    var t = r.pop();
                    if ((t in e)) return (next.value = t, next.done = !1, next);
                }
                return (next.done = !0, next);
            });
        }, e.values = values, Context.prototype = {
            constructor: Context,
            reset: function reset(e) {
                var _context3;
                if ((this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, _forEachInstanceProperty(_context3 = this.tryEntries).call(_context3, resetTryEntry), !e)) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+_sliceInstanceProperty(r).call(r, 1)) && (this[r] = t);
            },
            stop: function stop() {
                this.done = !0;
                var t = this.tryEntries[0].completion;
                if ("throw" === t.type) throw t.arg;
                return this.rval;
            },
            dispatchException: function dispatchException(e) {
                if (this.done) throw e;
                var r = this;
                function handle(n, o) {
                    return (a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o);
                }
                for (var o = this.tryEntries.length - 1; o >= 0; --o) {
                    var i = this.tryEntries[o], a = i.completion;
                    if ("root" === i.tryLoc) return handle("end");
                    if (i.tryLoc <= this.prev) {
                        var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc");
                        if (c && u) {
                            if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);
                            if (this.prev < i.finallyLoc) return handle(i.finallyLoc);
                        } else if (c) {
                            if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);
                        } else {
                            if (!u) throw Error("try statement without catch or finally");
                            if (this.prev < i.finallyLoc) return handle(i.finallyLoc);
                        }
                    }
                }
            },
            abrupt: function abrupt(t, e) {
                for (var r = this.tryEntries.length - 1; r >= 0; --r) {
                    var o = this.tryEntries[r];
                    if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) {
                        var i = o;
                        break;
                    }
                }
                i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);
                var a = i ? i.completion : {};
                return (a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a));
            },
            complete: function complete(t, e) {
                if ("throw" === t.type) throw t.arg;
                return ("break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y);
            },
            finish: function finish(t) {
                for (var e = this.tryEntries.length - 1; e >= 0; --e) {
                    var r = this.tryEntries[e];
                    if (r.finallyLoc === t) return (this.complete(r.completion, r.afterLoc), resetTryEntry(r), y);
                }
            },
            "catch": function _catch(t) {
                for (var e = this.tryEntries.length - 1; e >= 0; --e) {
                    var r = this.tryEntries[e];
                    if (r.tryLoc === t) {
                        var n = r.completion;
                        if ("throw" === n.type) {
                            var o = n.arg;
                            resetTryEntry(r);
                        }
                        return o;
                    }
                }
                throw Error("illegal catch attempt");
            },
            delegateYield: function delegateYield(e, r, n) {
                return (this.delegate = {
                    iterator: values(e),
                    resultName: r,
                    nextLoc: n
                }, "next" === this.method && (this.arg = t), y);
            }
        }, e);
    }
    (module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports);
})(regeneratorRuntime$1);
var regeneratorRuntimeExports = regeneratorRuntime$1.exports;
getDefaultExportFromCjs(regeneratorRuntimeExports);

var runtime = regeneratorRuntimeExports();
var regenerator = runtime;
try {
    regeneratorRuntime = runtime;
} catch (accidentalStrictMode) {
    if (typeof globalThis === "object") {
        globalThis.regeneratorRuntime = runtime;
    } else {
        Function("r", "regeneratorRuntime = r")(runtime);
    }
}
var _regeneratorRuntime = getDefaultExportFromCjs(regenerator);

var $$3 = _export;
var $find = arrayIteration.find;
var FIND = 'find';
var SKIPS_HOLES = true;
if ((FIND in [])) Array(1)[FIND](function () {
    SKIPS_HOLES = false;
});
$$3({
    target: 'Array',
    proto: true,
    forced: SKIPS_HOLES
}, {
    find: function find(callbackfn) {
        return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
    }
});

var getBuiltInPrototypeMethod$2 = getBuiltInPrototypeMethod$9;
var find$3 = getBuiltInPrototypeMethod$2('Array', 'find');
getDefaultExportFromCjs(find$3);

var isPrototypeOf$2 = objectIsPrototypeOf;
var method$2 = find$3;
var ArrayPrototype$2 = Array.prototype;
var find$2 = function (it) {
    var own = it.find;
    return it === ArrayPrototype$2 || isPrototypeOf$2(ArrayPrototype$2, it) && own === ArrayPrototype$2.find ? method$2 : own;
};
getDefaultExportFromCjs(find$2);

var parent$3 = find$2;
var find$1 = parent$3;
getDefaultExportFromCjs(find$1);

var find = find$1;
var _findInstanceProperty = getDefaultExportFromCjs(find);

var $$2 = _export;
var $filter = arrayIteration.filter;
var arrayMethodHasSpeciesSupport$1 = arrayMethodHasSpeciesSupport$4;
var HAS_SPECIES_SUPPORT$1 = arrayMethodHasSpeciesSupport$1('filter');
$$2({
    target: 'Array',
    proto: true,
    forced: !HAS_SPECIES_SUPPORT$1
}, {
    filter: function filter(callbackfn) {
        return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
    }
});

var getBuiltInPrototypeMethod$1 = getBuiltInPrototypeMethod$9;
var filter$3 = getBuiltInPrototypeMethod$1('Array', 'filter');
getDefaultExportFromCjs(filter$3);

var isPrototypeOf$1 = objectIsPrototypeOf;
var method$1 = filter$3;
var ArrayPrototype$1 = Array.prototype;
var filter$2 = function (it) {
    var own = it.filter;
    return it === ArrayPrototype$1 || isPrototypeOf$1(ArrayPrototype$1, it) && own === ArrayPrototype$1.filter ? method$1 : own;
};
getDefaultExportFromCjs(filter$2);

var parent$2 = filter$2;
var filter$1 = parent$2;
getDefaultExportFromCjs(filter$1);

var filter = filter$1;
var _filterInstanceProperty = getDefaultExportFromCjs(filter);

var toIntegerOrInfinity = toIntegerOrInfinity$4;
var toString$1 = toString$9;
var requireObjectCoercible$1 = requireObjectCoercible$7;
var $RangeError$1 = RangeError;
var stringRepeat = function repeat(count) {
    var str = toString$1(requireObjectCoercible$1(this));
    var result = '';
    var n = toIntegerOrInfinity(count);
    if (n < 0 || n === Infinity) throw new $RangeError$1('Wrong number of repetitions');
    for (; n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;
    return result;
};
getDefaultExportFromCjs(stringRepeat);

var uncurryThis$1 = functionUncurryThis;
var toLength = toLength$2;
var toString = toString$9;
var $repeat = stringRepeat;
var requireObjectCoercible = requireObjectCoercible$7;
var repeat = uncurryThis$1($repeat);
var stringSlice = uncurryThis$1(('').slice);
var ceil = Math.ceil;
var createMethod = function (IS_END) {
    return function ($this, maxLength, fillString) {
        var S = toString(requireObjectCoercible($this));
        var intMaxLength = toLength(maxLength);
        var stringLength = S.length;
        var fillStr = fillString === undefined ? ' ' : toString(fillString);
        var fillLen, stringFiller;
        if (intMaxLength <= stringLength || fillStr === '') return S;
        fillLen = intMaxLength - stringLength;
        stringFiller = repeat(fillStr, ceil(fillLen / fillStr.length));
        if (stringFiller.length > fillLen) stringFiller = stringSlice(stringFiller, 0, fillLen);
        return IS_END ? S + stringFiller : stringFiller + S;
    };
};
var stringPad = {
    start: createMethod(false),
    end: createMethod(true)
};
getDefaultExportFromCjs(stringPad);

var uncurryThis = functionUncurryThis;
var fails$1 = fails$q;
var padStart = stringPad.start;
var $RangeError = RangeError;
var $isFinite = isFinite;
var abs = Math.abs;
var DatePrototype = Date.prototype;
var nativeDateToISOString = DatePrototype.toISOString;
var thisTimeValue = uncurryThis(DatePrototype.getTime);
var getUTCDate = uncurryThis(DatePrototype.getUTCDate);
var getUTCFullYear = uncurryThis(DatePrototype.getUTCFullYear);
var getUTCHours = uncurryThis(DatePrototype.getUTCHours);
var getUTCMilliseconds = uncurryThis(DatePrototype.getUTCMilliseconds);
var getUTCMinutes = uncurryThis(DatePrototype.getUTCMinutes);
var getUTCMonth = uncurryThis(DatePrototype.getUTCMonth);
var getUTCSeconds = uncurryThis(DatePrototype.getUTCSeconds);
var dateToIsoString = fails$1(function () {
    return nativeDateToISOString.call(new Date(-5e13 - 1)) !== '0385-07-25T07:06:39.999Z';
}) || !fails$1(function () {
    nativeDateToISOString.call(new Date(NaN));
}) ? function toISOString() {
    if (!$isFinite(thisTimeValue(this))) throw new $RangeError('Invalid time value');
    var date = this;
    var year = getUTCFullYear(date);
    var milliseconds = getUTCMilliseconds(date);
    var sign = year < 0 ? '-' : year > 9999 ? '+' : '';
    return sign + padStart(abs(year), sign ? 6 : 4, 0) + '-' + padStart(getUTCMonth(date) + 1, 2, 0) + '-' + padStart(getUTCDate(date), 2, 0) + 'T' + padStart(getUTCHours(date), 2, 0) + ':' + padStart(getUTCMinutes(date), 2, 0) + ':' + padStart(getUTCSeconds(date), 2, 0) + '.' + padStart(milliseconds, 3, 0) + 'Z';
} : nativeDateToISOString;
getDefaultExportFromCjs(dateToIsoString);

var $$1 = _export;
var call = functionCall;
var toObject = toObject$9;
var toPrimitive = toPrimitive$8;
var toISOString = dateToIsoString;
var classof = classofRaw$2;
var fails = fails$q;
var FORCED = fails(function () {
    return new Date(NaN).toJSON() !== null || call(Date.prototype.toJSON, {
        toISOString: function () {
            return 1;
        }
    }) !== 1;
});
$$1({
    target: 'Date',
    proto: true,
    forced: FORCED
}, {
    toJSON: function toJSON(key) {
        var O = toObject(this);
        var pv = toPrimitive(O, 'number');
        return typeof pv == 'number' && !isFinite(pv) ? null : !(('toISOString' in O)) && classof(O) === 'Date' ? call(toISOString, O) : O.toISOString();
    }
});

var path = path$f;
var apply = functionApply;
if (!path.JSON) path.JSON = {
    stringify: JSON.stringify
};
var stringify$2 = function stringify(it, replacer, space) {
    return apply(path.JSON.stringify, null, arguments);
};
getDefaultExportFromCjs(stringify$2);

var parent$1 = stringify$2;
var stringify$1 = parent$1;
getDefaultExportFromCjs(stringify$1);

var stringify = stringify$1;
var _JSON$stringify = getDefaultExportFromCjs(stringify);

var $ = _export;
var $map = arrayIteration.map;
var arrayMethodHasSpeciesSupport = arrayMethodHasSpeciesSupport$4;
var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');
$({
    target: 'Array',
    proto: true,
    forced: !HAS_SPECIES_SUPPORT
}, {
    map: function map(callbackfn) {
        return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
    }
});

var getBuiltInPrototypeMethod = getBuiltInPrototypeMethod$9;
var map$3 = getBuiltInPrototypeMethod('Array', 'map');
getDefaultExportFromCjs(map$3);

var isPrototypeOf = objectIsPrototypeOf;
var method = map$3;
var ArrayPrototype = Array.prototype;
var map$2 = function (it) {
    var own = it.map;
    return it === ArrayPrototype || isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.map ? method : own;
};
getDefaultExportFromCjs(map$2);

var parent = map$2;
var map$1 = parent;
getDefaultExportFromCjs(map$1);

var map = map$1;
var _mapInstanceProperty = getDefaultExportFromCjs(map);

function ownKeys(e, r) {
    var t = _Object$keys(e);
    if (_Object$getOwnPropertySymbols) {
        var o = _Object$getOwnPropertySymbols(e);
        (r && (o = _filterInstanceProperty(o).call(o, function (r) {
            return _Object$getOwnPropertyDescriptor(e, r).enumerable;
        })), t.push.apply(t, o));
    }
    return t;
}
function _objectSpread(e) {
    for (var r = 1; r < arguments.length; r++) {
        var _context9, _context10;
        var t = null != arguments[r] ? arguments[r] : {};
        r % 2 ? _forEachInstanceProperty(_context9 = ownKeys(Object(t), !0)).call(_context9, function (r) {
            _defineProperty(e, r, t[r]);
        }) : _Object$getOwnPropertyDescriptors ? Object.defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context10 = ownKeys(Object(t))).call(_context10, function (r) {
            Object.defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r));
        });
    }
    return e;
}
var selectMixin = {
    inject: {
        getFormModalType: {
            type: Function,
            default: null
        }
    },
    data: function data() {
        return {
            remoteOptionsData: [],
            queryOptionsUrl: '/onlcode/saas/option/queryOptionData',
            customerBindUserList: [],
            isRenderCurrentUser: false,
            currentCustomer: {}
        };
    },
    computed: {
        formSelectOption: function formSelectOption() {
            var _context;
            if (this.componentConfig.dynamic === 'static') {
                return this.componentConfig.options;
            } else if (_includesInstanceProperty(_context = ['dict', 'table', 'custom']).call(_context, this.componentConfig.dynamic)) {
                return this.componentConfig.remoteOptionsData || [];
            } else {
                return [];
            }
        }
    },
    watch: {
        'componentConfig.dynamic': {
            handler: function handler(newVal) {
                var _context2;
                if (_includesInstanceProperty(_context2 = ['dict', 'table', 'custom']).call(_context2, newVal)) {
                    this.$set(this.componentConfig, 'remoteOptionsData', []);
                }
            }
        },
        'componentConfig.distal.dictText': {
            handler: function handler(newVal, oldVal) {
                this.componentConfig.dynamic === 'table' && newVal && newVal !== oldVal && this.getDistalOptions();
            }
        },
        'componentConfig.distal.dictCode': {
            handler: function handler(newVal, oldVal) {
                this.componentConfig.dynamic === 'dict' && newVal && newVal !== oldVal && this.getDistalOptions();
            }
        }
    },
    created: function created() {
        if (this.$sketon && this.$sketon.APP_CHANEL === 'saas') {
            this.queryOptionsUrl = '/base/option/queryOptionData';
        }
        this.getDistalOptions();
    },
    methods: {
        queryCustomerBindUser: function queryCustomerBindUser() {
            var _this = this;
            var params = {
                dictType: 'table',
                dictTable: 'wms_customer',
                dictField: 'customer_code',
                dictText: 'belong_user_code',
                tableId: '60e51941faa24f41175d3f7a0ea05efa',
                columnId: '3729dd38276f56573d481670cf0626b6'
            };
            manage.postActionAsHeader({
                url: this.queryOptionsUrl,
                params: params,
                headers: {
                    saas: this.$route.query.projectCode
                }
            }).then(function (res) {
                var _context3;
                _this.customerBindUserList = res.result;
                var currentUserCode = _this.$sketon ? _this.$sketon.user.info.code : '';
                var customerOrUser = _findInstanceProperty(_context3 = _this.customerBindUserList).call(_context3, function (item) {
                    return item.text === currentUserCode;
                });
                var remoteOptionsData = _this.componentConfig.remoteOptionsData;
                var currentCustomer = _filterInstanceProperty(remoteOptionsData).call(remoteOptionsData, function (item) {
                    return item.value === customerOrUser.value;
                });
                if (currentCustomer && currentCustomer[0]) {
                    if (_this.getFormModalType) {
                        var formModalType = _this.getFormModalType();
                        if (formModalType !== 'update') {
                            _this.isRenderCurrentUser = true;
                            _this.currentCustomer = currentCustomer[0];
                            var selectData = {};
                            selectData[_this.componentConfig.model] = _this.currentCustomer.value;
                            _this.formSource.formDataControl.setFormFieldValue(selectData);
                            _this.handleChange(_this.currentCustomer.value, _this.componentConfig.model, _this.componentConfig);
                        }
                    }
                }
            });
        },
        getDistalOptions: function getDistalOptions() {
            var _context4, _this2 = this;
            if (this.componentConfig.dynamic === 'static') {
                return;
            } else if (_includesInstanceProperty(_context4 = ['dict', 'table']).call(_context4, this.componentConfig.dynamic)) {
                var params = _objectSpread(_objectSpread({}, this.componentConfig.distal), {}, {
                    dictConditionList: Array.isArray(this.componentConfig.distal.dictConditionList) ? _JSON$stringify(this.componentConfig.distal.dictConditionList) : undefined
                });
                if (Array.isArray(params.dictCondition)) {
                    params.dictCondition = '';
                }
                if (this.componentConfig.dynamic === 'dict' && !params.dictCode) return;
                if (this.componentConfig.dynamic === 'table' && (!params.tableId || !params.columnId)) return;
                manage.postActionAsHeader({
                    url: this.queryOptionsUrl,
                    params: params,
                    headers: {
                        saas: this.$route.query.projectCode
                    }
                }).then(function (res) {
                    var _context5, _context6;
                    _this2.$set(_this2.componentConfig, 'remoteOptionsData', _filterInstanceProperty(_context5 = _mapInstanceProperty(_context6 = res.result).call(_context6, function (item) {
                        return {
                            value: item.value + '',
                            label: item.text
                        };
                    })).call(_context5, function (item) {
                        return item.value;
                    }));
                    if (_this2.componentConfig.isCurrentUser) {
                        _this2.queryCustomerBindUser();
                    }
                });
            } else if (this.componentConfig.dynamic === 'custom') {
                this.getCustomFunc();
            }
        },
        getCustomFunc: function getCustomFunc() {
            var _this3 = this;
            return _asyncToGenerator(_regeneratorRuntime.mark(function _callee() {
                var customOptionsFunc, options, _context7;
                return _regeneratorRuntime.wrap(function _callee$(_context8) {
                    while (1) switch (_context8.prev = _context8.next) {
                        case 0:
                            customOptionsFunc = _this3.componentConfig.customOptionsFunc;
                            if (!(typeof customOptionsFunc === 'function')) {
                                _context8.next = 5;
                                break;
                            }
                            customOptionsFunc();
                            _context8.next = 12;
                            break;
                        case 5:
                            if (!(typeof customOptionsFunc === 'string')) {
                                _context8.next = 12;
                                break;
                            }
                            try {
                                customOptionsFunc = _this3.formSource.customScript.executeCodeScript(customOptionsFunc, _this3);
                            } catch (err) {
                                console.error(err);
                            }
                            if (!(typeof customOptionsFunc === 'function')) {
                                _context8.next = 12;
                                break;
                            }
                            _context8.next = 10;
                            return customOptionsFunc();
                        case 10:
                            options = _context8.sent;
                            if (Array.isArray(options)) {
                                _this3.$set(_this3.componentConfig, 'remoteOptionsData', _filterInstanceProperty(_context7 = _mapInstanceProperty(options).call(options, function (item) {
                                    return {
                                        value: item.value + '',
                                        label: item.text
                                    };
                                })).call(_context7, function (item) {
                                    return item.value;
                                }));
                            }
                        case 12:
                        case "end":
                            return _context8.stop();
                    }
                }, _callee);
            }))();
        }
    }
};

var script$x = {
    name: 'FormCheckBox',
    mixins: [FormComponentMixin, selectMixin],
    props: {},
    data() {
        return {};
    },
    created() {},
    methods: {}
};

/* script */ var __vue_script__$x = script$x;

/* template */
var __vue_render__$w = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c(
    "div",
    { staticClass: "form-component form-text-input" },
    [
      _c(
        "proxy-form-item",
        {
          attrs: {
            label: _vm.componentConfig.label,
            componentConfig: _vm.componentConfig,
            promptMessage: _vm.componentConfig.promptMessageContent,
            rules: _vm.componentConfig.rules
          }
        },
        [
          _vm.renderScene === "edit"
            ? _c("a-checkbox-group", {
                attrs: {
                  options: _vm.formSelectOption,
                  disabled: _vm.componentConfig.disabled
                },
                on: {
                  change: function($event) {
                    return _vm.handleChange($event, _vm.componentConfig.model)
                  }
                },
                model: {
                  value: _vm.formValue,
                  callback: function($$v) {
                    _vm.formValue = $$v;
                  },
                  expression: "formValue"
                }
              })
            : _vm.renderScene === "read"
            ? _c("a-checkbox-group", {
                attrs: {
                  value: _vm.componentConfig.defaultValue,
                  options: _vm.formSelectOption,
                  disabled: true,
                  placeholder: _vm.componentConfig.placeholder
                }
              })
            : _vm.renderScene === "ide"
            ? _c("a-checkbox-group", {
                attrs: {
                  value: _vm.componentConfig.defaultValue,
                  options: _vm.formSelectOption,
                  disabled: _vm.componentConfig.disabled
                }
              })
            : _vm._e()
        ],
        1
      )
    ],
    1
  )
};
var __vue_staticRenderFns__$w = [];
__vue_render__$w._withStripped = true;

  /* style */
  var __vue_inject_styles__$x = undefined;
  /* scoped */
  var __vue_scope_id__$x = undefined;
  /* module identifier */
  var __vue_module_identifier__$x = undefined;
  /* functional template */
  var __vue_is_functional_template__$x = false;
  /* style inject */
  
  /* style inject SSR */
  
  /* style inject shadow dom */
  

  
  var __vue_component__$x = /*#__PURE__*/normalizeComponent(
    { render: __vue_render__$w, staticRenderFns: __vue_staticRenderFns__$w },
    __vue_inject_styles__$x,
    __vue_script__$x,
    __vue_scope_id__$x,
    __vue_is_functional_template__$x,
    __vue_module_identifier__$x,
    false,
    undefined,
    undefined,
    undefined
  );

__vue_component__$x.install = function (Vue) {
    Vue.component(__vue_component__$x.name, __vue_component__$x);
};

function commonjsRequire(path) {
	throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');
}

var moment$1 = {exports: {}};

(function (module, exports) {
    (function (global, factory) {
        module.exports = factory() ;
    })(commonjsGlobal, function () {
        var hookCallback;
        function hooks() {
            return hookCallback.apply(null, arguments);
        }
        function setHookCallback(callback) {
            hookCallback = callback;
        }
        function isArray(input) {
            return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';
        }
        function isObject(input) {
            return input != null && Object.prototype.toString.call(input) === '[object Object]';
        }
        function hasOwnProp(a, b) {
            return Object.prototype.hasOwnProperty.call(a, b);
        }
        function isObjectEmpty(obj) {
            if (Object.getOwnPropertyNames) {
                return Object.getOwnPropertyNames(obj).length === 0;
            } else {
                var k;
                for (k in obj) {
                    if (hasOwnProp(obj, k)) {
                        return false;
                    }
                }
                return true;
            }
        }
        function isUndefined(input) {
            return input === void 0;
        }
        function isNumber(input) {
            return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]';
        }
        function isDate(input) {
            return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';
        }
        function map(arr, fn) {
            var res = [], i, arrLen = arr.length;
            for (i = 0; i < arrLen; ++i) {
                res.push(fn(arr[i], i));
            }
            return res;
        }
        function extend(a, b) {
            for (var i in b) {
                if (hasOwnProp(b, i)) {
                    a[i] = b[i];
                }
            }
            if (hasOwnProp(b, 'toString')) {
                a.toString = b.toString;
            }
            if (hasOwnProp(b, 'valueOf')) {
                a.valueOf = b.valueOf;
            }
            return a;
        }
        function createUTC(input, format, locale, strict) {
            return createLocalOrUTC(input, format, locale, strict, true).utc();
        }
        function defaultParsingFlags() {
            return {
                empty: false,
                unusedTokens: [],
                unusedInput: [],
                overflow: -2,
                charsLeftOver: 0,
                nullInput: false,
                invalidEra: null,
                invalidMonth: null,
                invalidFormat: false,
                userInvalidated: false,
                iso: false,
                parsedDateParts: [],
                era: null,
                meridiem: null,
                rfc2822: false,
                weekdayMismatch: false
            };
        }
        function getParsingFlags(m) {
            if (m._pf == null) {
                m._pf = defaultParsingFlags();
            }
            return m._pf;
        }
        var some;
        if (Array.prototype.some) {
            some = Array.prototype.some;
        } else {
            some = function (fun) {
                var t = Object(this), len = t.length >>> 0, i;
                for (i = 0; i < len; i++) {
                    if ((i in t) && fun.call(this, t[i], i, t)) {
                        return true;
                    }
                }
                return false;
            };
        }
        function isValid(m) {
            var flags = null, parsedParts = false, isNowValid = m._d && !isNaN(m._d.getTime());
            if (isNowValid) {
                flags = getParsingFlags(m);
                parsedParts = some.call(flags.parsedDateParts, function (i) {
                    return i != null;
                });
                isNowValid = flags.overflow < 0 && !flags.empty && !flags.invalidEra && !flags.invalidMonth && !flags.invalidWeekday && !flags.weekdayMismatch && !flags.nullInput && !flags.invalidFormat && !flags.userInvalidated && (!flags.meridiem || flags.meridiem && parsedParts);
                if (m._strict) {
                    isNowValid = isNowValid && flags.charsLeftOver === 0 && flags.unusedTokens.length === 0 && flags.bigHour === undefined;
                }
            }
            if (Object.isFrozen == null || !Object.isFrozen(m)) {
                m._isValid = isNowValid;
            } else {
                return isNowValid;
            }
            return m._isValid;
        }
        function createInvalid(flags) {
            var m = createUTC(NaN);
            if (flags != null) {
                extend(getParsingFlags(m), flags);
            } else {
                getParsingFlags(m).userInvalidated = true;
            }
            return m;
        }
        var momentProperties = hooks.momentProperties = [], updateInProgress = false;
        function copyConfig(to, from) {
            var i, prop, val, momentPropertiesLen = momentProperties.length;
            if (!isUndefined(from._isAMomentObject)) {
                to._isAMomentObject = from._isAMomentObject;
            }
            if (!isUndefined(from._i)) {
                to._i = from._i;
            }
            if (!isUndefined(from._f)) {
                to._f = from._f;
            }
            if (!isUndefined(from._l)) {
                to._l = from._l;
            }
            if (!isUndefined(from._strict)) {
                to._strict = from._strict;
            }
            if (!isUndefined(from._tzm)) {
                to._tzm = from._tzm;
            }
            if (!isUndefined(from._isUTC)) {
                to._isUTC = from._isUTC;
            }
            if (!isUndefined(from._offset)) {
                to._offset = from._offset;
            }
            if (!isUndefined(from._pf)) {
                to._pf = getParsingFlags(from);
            }
            if (!isUndefined(from._locale)) {
                to._locale = from._locale;
            }
            if (momentPropertiesLen > 0) {
                for (i = 0; i < momentPropertiesLen; i++) {
                    prop = momentProperties[i];
                    val = from[prop];
                    if (!isUndefined(val)) {
                        to[prop] = val;
                    }
                }
            }
            return to;
        }
        function Moment(config) {
            copyConfig(this, config);
            this._d = new Date(config._d != null ? config._d.getTime() : NaN);
            if (!this.isValid()) {
                this._d = new Date(NaN);
            }
            if (updateInProgress === false) {
                updateInProgress = true;
                hooks.updateOffset(this);
                updateInProgress = false;
            }
        }
        function isMoment(obj) {
            return obj instanceof Moment || obj != null && obj._isAMomentObject != null;
        }
        function warn(msg) {
            if (hooks.suppressDeprecationWarnings === false && typeof console !== 'undefined' && console.warn) {
                console.warn('Deprecation warning: ' + msg);
            }
        }
        function deprecate(msg, fn) {
            var firstTime = true;
            return extend(function () {
                if (hooks.deprecationHandler != null) {
                    hooks.deprecationHandler(null, msg);
                }
                if (firstTime) {
                    var args = [], arg, i, key, argLen = arguments.length;
                    for (i = 0; i < argLen; i++) {
                        arg = '';
                        if (typeof arguments[i] === 'object') {
                            arg += '\n[' + i + '] ';
                            for (key in arguments[0]) {
                                if (hasOwnProp(arguments[0], key)) {
                                    arg += key + ': ' + arguments[0][key] + ', ';
                                }
                            }
                            arg = arg.slice(0, -2);
                        } else {
                            arg = arguments[i];
                        }
                        args.push(arg);
                    }
                    warn(msg + '\nArguments: ' + Array.prototype.slice.call(args).join('') + '\n' + new Error().stack);
                    firstTime = false;
                }
                return fn.apply(this, arguments);
            }, fn);
        }
        var deprecations = {};
        function deprecateSimple(name, msg) {
            if (hooks.deprecationHandler != null) {
                hooks.deprecationHandler(name, msg);
            }
            if (!deprecations[name]) {
                warn(msg);
                deprecations[name] = true;
            }
        }
        hooks.suppressDeprecationWarnings = false;
        hooks.deprecationHandler = null;
        function isFunction(input) {
            return typeof Function !== 'undefined' && input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';
        }
        function set(config) {
            var prop, i;
            for (i in config) {
                if (hasOwnProp(config, i)) {
                    prop = config[i];
                    if (isFunction(prop)) {
                        this[i] = prop;
                    } else {
                        this['_' + i] = prop;
                    }
                }
            }
            this._config = config;
            this._dayOfMonthOrdinalParseLenient = new RegExp((this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + '|' + (/\d{1,2}/).source);
        }
        function mergeConfigs(parentConfig, childConfig) {
            var res = extend({}, parentConfig), prop;
            for (prop in childConfig) {
                if (hasOwnProp(childConfig, prop)) {
                    if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {
                        res[prop] = {};
                        extend(res[prop], parentConfig[prop]);
                        extend(res[prop], childConfig[prop]);
                    } else if (childConfig[prop] != null) {
                        res[prop] = childConfig[prop];
                    } else {
                        delete res[prop];
                    }
                }
            }
            for (prop in parentConfig) {
                if (hasOwnProp(parentConfig, prop) && !hasOwnProp(childConfig, prop) && isObject(parentConfig[prop])) {
                    res[prop] = extend({}, res[prop]);
                }
            }
            return res;
        }
        function Locale(config) {
            if (config != null) {
                this.set(config);
            }
        }
        var keys;
        if (Object.keys) {
            keys = Object.keys;
        } else {
            keys = function (obj) {
                var i, res = [];
                for (i in obj) {
                    if (hasOwnProp(obj, i)) {
                        res.push(i);
                    }
                }
                return res;
            };
        }
        var defaultCalendar = {
            sameDay: '[Today at] LT',
            nextDay: '[Tomorrow at] LT',
            nextWeek: 'dddd [at] LT',
            lastDay: '[Yesterday at] LT',
            lastWeek: '[Last] dddd [at] LT',
            sameElse: 'L'
        };
        function calendar(key, mom, now) {
            var output = this._calendar[key] || this._calendar['sameElse'];
            return isFunction(output) ? output.call(mom, now) : output;
        }
        function zeroFill(number, targetLength, forceSign) {
            var absNumber = '' + Math.abs(number), zerosToFill = targetLength - absNumber.length, sign = number >= 0;
            return (sign ? forceSign ? '+' : '' : '-') + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;
        }
        var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g, localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, formatFunctions = {}, formatTokenFunctions = {};
        function addFormatToken(token, padded, ordinal, callback) {
            var func = callback;
            if (typeof callback === 'string') {
                func = function () {
                    return this[callback]();
                };
            }
            if (token) {
                formatTokenFunctions[token] = func;
            }
            if (padded) {
                formatTokenFunctions[padded[0]] = function () {
                    return zeroFill(func.apply(this, arguments), padded[1], padded[2]);
                };
            }
            if (ordinal) {
                formatTokenFunctions[ordinal] = function () {
                    return this.localeData().ordinal(func.apply(this, arguments), token);
                };
            }
        }
        function removeFormattingTokens(input) {
            if (input.match(/\[[\s\S]/)) {
                return input.replace(/^\[|\]$/g, '');
            }
            return input.replace(/\\/g, '');
        }
        function makeFormatFunction(format) {
            var array = format.match(formattingTokens), i, length;
            for ((i = 0, length = array.length); i < length; i++) {
                if (formatTokenFunctions[array[i]]) {
                    array[i] = formatTokenFunctions[array[i]];
                } else {
                    array[i] = removeFormattingTokens(array[i]);
                }
            }
            return function (mom) {
                var output = '', i;
                for (i = 0; i < length; i++) {
                    output += isFunction(array[i]) ? array[i].call(mom, format) : array[i];
                }
                return output;
            };
        }
        function formatMoment(m, format) {
            if (!m.isValid()) {
                return m.localeData().invalidDate();
            }
            format = expandFormat(format, m.localeData());
            formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);
            return formatFunctions[format](m);
        }
        function expandFormat(format, locale) {
            var i = 5;
            function replaceLongDateFormatTokens(input) {
                return locale.longDateFormat(input) || input;
            }
            localFormattingTokens.lastIndex = 0;
            while (i >= 0 && localFormattingTokens.test(format)) {
                format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);
                localFormattingTokens.lastIndex = 0;
                i -= 1;
            }
            return format;
        }
        var defaultLongDateFormat = {
            LTS: 'h:mm:ss A',
            LT: 'h:mm A',
            L: 'MM/DD/YYYY',
            LL: 'MMMM D, YYYY',
            LLL: 'MMMM D, YYYY h:mm A',
            LLLL: 'dddd, MMMM D, YYYY h:mm A'
        };
        function longDateFormat(key) {
            var format = this._longDateFormat[key], formatUpper = this._longDateFormat[key.toUpperCase()];
            if (format || !formatUpper) {
                return format;
            }
            this._longDateFormat[key] = formatUpper.match(formattingTokens).map(function (tok) {
                if (tok === 'MMMM' || tok === 'MM' || tok === 'DD' || tok === 'dddd') {
                    return tok.slice(1);
                }
                return tok;
            }).join('');
            return this._longDateFormat[key];
        }
        var defaultInvalidDate = 'Invalid date';
        function invalidDate() {
            return this._invalidDate;
        }
        var defaultOrdinal = '%d', defaultDayOfMonthOrdinalParse = /\d{1,2}/;
        function ordinal(number) {
            return this._ordinal.replace('%d', number);
        }
        var defaultRelativeTime = {
            future: 'in %s',
            past: '%s ago',
            s: 'a few seconds',
            ss: '%d seconds',
            m: 'a minute',
            mm: '%d minutes',
            h: 'an hour',
            hh: '%d hours',
            d: 'a day',
            dd: '%d days',
            w: 'a week',
            ww: '%d weeks',
            M: 'a month',
            MM: '%d months',
            y: 'a year',
            yy: '%d years'
        };
        function relativeTime(number, withoutSuffix, string, isFuture) {
            var output = this._relativeTime[string];
            return isFunction(output) ? output(number, withoutSuffix, string, isFuture) : output.replace(/%d/i, number);
        }
        function pastFuture(diff, output) {
            var format = this._relativeTime[diff > 0 ? 'future' : 'past'];
            return isFunction(format) ? format(output) : format.replace(/%s/i, output);
        }
        var aliases = {
            D: 'date',
            dates: 'date',
            date: 'date',
            d: 'day',
            days: 'day',
            day: 'day',
            e: 'weekday',
            weekdays: 'weekday',
            weekday: 'weekday',
            E: 'isoWeekday',
            isoweekdays: 'isoWeekday',
            isoweekday: 'isoWeekday',
            DDD: 'dayOfYear',
            dayofyears: 'dayOfYear',
            dayofyear: 'dayOfYear',
            h: 'hour',
            hours: 'hour',
            hour: 'hour',
            ms: 'millisecond',
            milliseconds: 'millisecond',
            millisecond: 'millisecond',
            m: 'minute',
            minutes: 'minute',
            minute: 'minute',
            M: 'month',
            months: 'month',
            month: 'month',
            Q: 'quarter',
            quarters: 'quarter',
            quarter: 'quarter',
            s: 'second',
            seconds: 'second',
            second: 'second',
            gg: 'weekYear',
            weekyears: 'weekYear',
            weekyear: 'weekYear',
            GG: 'isoWeekYear',
            isoweekyears: 'isoWeekYear',
            isoweekyear: 'isoWeekYear',
            w: 'week',
            weeks: 'week',
            week: 'week',
            W: 'isoWeek',
            isoweeks: 'isoWeek',
            isoweek: 'isoWeek',
            y: 'year',
            years: 'year',
            year: 'year'
        };
        function normalizeUnits(units) {
            return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;
        }
        function normalizeObjectUnits(inputObject) {
            var normalizedInput = {}, normalizedProp, prop;
            for (prop in inputObject) {
                if (hasOwnProp(inputObject, prop)) {
                    normalizedProp = normalizeUnits(prop);
                    if (normalizedProp) {
                        normalizedInput[normalizedProp] = inputObject[prop];
                    }
                }
            }
            return normalizedInput;
        }
        var priorities = {
            date: 9,
            day: 11,
            weekday: 11,
            isoWeekday: 11,
            dayOfYear: 4,
            hour: 13,
            millisecond: 16,
            minute: 14,
            month: 8,
            quarter: 7,
            second: 15,
            weekYear: 1,
            isoWeekYear: 1,
            week: 5,
            isoWeek: 5,
            year: 1
        };
        function getPrioritizedUnits(unitsObj) {
            var units = [], u;
            for (u in unitsObj) {
                if (hasOwnProp(unitsObj, u)) {
                    units.push({
                        unit: u,
                        priority: priorities[u]
                    });
                }
            }
            units.sort(function (a, b) {
                return a.priority - b.priority;
            });
            return units;
        }
        var match1 = /\d/, match2 = /\d\d/, match3 = /\d{3}/, match4 = /\d{4}/, match6 = /[+-]?\d{6}/, match1to2 = /\d\d?/, match3to4 = /\d\d\d\d?/, match5to6 = /\d\d\d\d\d\d?/, match1to3 = /\d{1,3}/, match1to4 = /\d{1,4}/, match1to6 = /[+-]?\d{1,6}/, matchUnsigned = /\d+/, matchSigned = /[+-]?\d+/, matchOffset = /Z|[+-]\d\d:?\d\d/gi, matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi, matchTimestamp = /[+-]?\d+(\.\d{1,3})?/, matchWord = /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i, match1to2NoLeadingZero = /^[1-9]\d?/, match1to2HasZero = /^([1-9]\d|\d)/, regexes;
        regexes = {};
        function addRegexToken(token, regex, strictRegex) {
            regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) {
                return isStrict && strictRegex ? strictRegex : regex;
            };
        }
        function getParseRegexForToken(token, config) {
            if (!hasOwnProp(regexes, token)) {
                return new RegExp(unescapeFormat(token));
            }
            return regexes[token](config._strict, config._locale);
        }
        function unescapeFormat(s) {
            return regexEscape(s.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) {
                return p1 || p2 || p3 || p4;
            }));
        }
        function regexEscape(s) {
            return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
        }
        function absFloor(number) {
            if (number < 0) {
                return Math.ceil(number) || 0;
            } else {
                return Math.floor(number);
            }
        }
        function toInt(argumentForCoercion) {
            var coercedNumber = +argumentForCoercion, value = 0;
            if (coercedNumber !== 0 && isFinite(coercedNumber)) {
                value = absFloor(coercedNumber);
            }
            return value;
        }
        var tokens = {};
        function addParseToken(token, callback) {
            var i, func = callback, tokenLen;
            if (typeof token === 'string') {
                token = [token];
            }
            if (isNumber(callback)) {
                func = function (input, array) {
                    array[callback] = toInt(input);
                };
            }
            tokenLen = token.length;
            for (i = 0; i < tokenLen; i++) {
                tokens[token[i]] = func;
            }
        }
        function addWeekParseToken(token, callback) {
            addParseToken(token, function (input, array, config, token) {
                config._w = config._w || ({});
                callback(input, config._w, config, token);
            });
        }
        function addTimeToArrayFromToken(token, input, config) {
            if (input != null && hasOwnProp(tokens, token)) {
                tokens[token](input, config._a, config, token);
            }
        }
        function isLeapYear(year) {
            return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;
        }
        var YEAR = 0, MONTH = 1, DATE = 2, HOUR = 3, MINUTE = 4, SECOND = 5, MILLISECOND = 6, WEEK = 7, WEEKDAY = 8;
        addFormatToken('Y', 0, 0, function () {
            var y = this.year();
            return y <= 9999 ? zeroFill(y, 4) : '+' + y;
        });
        addFormatToken(0, ['YY', 2], 0, function () {
            return this.year() % 100;
        });
        addFormatToken(0, ['YYYY', 4], 0, 'year');
        addFormatToken(0, ['YYYYY', 5], 0, 'year');
        addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');
        addRegexToken('Y', matchSigned);
        addRegexToken('YY', match1to2, match2);
        addRegexToken('YYYY', match1to4, match4);
        addRegexToken('YYYYY', match1to6, match6);
        addRegexToken('YYYYYY', match1to6, match6);
        addParseToken(['YYYYY', 'YYYYYY'], YEAR);
        addParseToken('YYYY', function (input, array) {
            array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);
        });
        addParseToken('YY', function (input, array) {
            array[YEAR] = hooks.parseTwoDigitYear(input);
        });
        addParseToken('Y', function (input, array) {
            array[YEAR] = parseInt(input, 10);
        });
        function daysInYear(year) {
            return isLeapYear(year) ? 366 : 365;
        }
        hooks.parseTwoDigitYear = function (input) {
            return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);
        };
        var getSetYear = makeGetSet('FullYear', true);
        function getIsLeapYear() {
            return isLeapYear(this.year());
        }
        function makeGetSet(unit, keepTime) {
            return function (value) {
                if (value != null) {
                    set$1(this, unit, value);
                    hooks.updateOffset(this, keepTime);
                    return this;
                } else {
                    return get(this, unit);
                }
            };
        }
        function get(mom, unit) {
            if (!mom.isValid()) {
                return NaN;
            }
            var d = mom._d, isUTC = mom._isUTC;
            switch (unit) {
                case 'Milliseconds':
                    return isUTC ? d.getUTCMilliseconds() : d.getMilliseconds();
                case 'Seconds':
                    return isUTC ? d.getUTCSeconds() : d.getSeconds();
                case 'Minutes':
                    return isUTC ? d.getUTCMinutes() : d.getMinutes();
                case 'Hours':
                    return isUTC ? d.getUTCHours() : d.getHours();
                case 'Date':
                    return isUTC ? d.getUTCDate() : d.getDate();
                case 'Day':
                    return isUTC ? d.getUTCDay() : d.getDay();
                case 'Month':
                    return isUTC ? d.getUTCMonth() : d.getMonth();
                case 'FullYear':
                    return isUTC ? d.getUTCFullYear() : d.getFullYear();
                default:
                    return NaN;
            }
        }
        function set$1(mom, unit, value) {
            var d, isUTC, year, month, date;
            if (!mom.isValid() || isNaN(value)) {
                return;
            }
            d = mom._d;
            isUTC = mom._isUTC;
            switch (unit) {
                case 'Milliseconds':
                    return void (isUTC ? d.setUTCMilliseconds(value) : d.setMilliseconds(value));
                case 'Seconds':
                    return void (isUTC ? d.setUTCSeconds(value) : d.setSeconds(value));
                case 'Minutes':
                    return void (isUTC ? d.setUTCMinutes(value) : d.setMinutes(value));
                case 'Hours':
                    return void (isUTC ? d.setUTCHours(value) : d.setHours(value));
                case 'Date':
                    return void (isUTC ? d.setUTCDate(value) : d.setDate(value));
                case 'FullYear':
                    break;
                default:
                    return;
            }
            year = value;
            month = mom.month();
            date = mom.date();
            date = date === 29 && month === 1 && !isLeapYear(year) ? 28 : date;
            void (isUTC ? d.setUTCFullYear(year, month, date) : d.setFullYear(year, month, date));
        }
        function stringGet(units) {
            units = normalizeUnits(units);
            if (isFunction(this[units])) {
                return this[units]();
            }
            return this;
        }
        function stringSet(units, value) {
            if (typeof units === 'object') {
                units = normalizeObjectUnits(units);
                var prioritized = getPrioritizedUnits(units), i, prioritizedLen = prioritized.length;
                for (i = 0; i < prioritizedLen; i++) {
                    this[prioritized[i].unit](units[prioritized[i].unit]);
                }
            } else {
                units = normalizeUnits(units);
                if (isFunction(this[units])) {
                    return this[units](value);
                }
            }
            return this;
        }
        function mod(n, x) {
            return (n % x + x) % x;
        }
        var indexOf;
        if (Array.prototype.indexOf) {
            indexOf = Array.prototype.indexOf;
        } else {
            indexOf = function (o) {
                var i;
                for (i = 0; i < this.length; ++i) {
                    if (this[i] === o) {
                        return i;
                    }
                }
                return -1;
            };
        }
        function daysInMonth(year, month) {
            if (isNaN(year) || isNaN(month)) {
                return NaN;
            }
            var modMonth = mod(month, 12);
            year += (month - modMonth) / 12;
            return modMonth === 1 ? isLeapYear(year) ? 29 : 28 : 31 - modMonth % 7 % 2;
        }
        addFormatToken('M', ['MM', 2], 'Mo', function () {
            return this.month() + 1;
        });
        addFormatToken('MMM', 0, 0, function (format) {
            return this.localeData().monthsShort(this, format);
        });
        addFormatToken('MMMM', 0, 0, function (format) {
            return this.localeData().months(this, format);
        });
        addRegexToken('M', match1to2, match1to2NoLeadingZero);
        addRegexToken('MM', match1to2, match2);
        addRegexToken('MMM', function (isStrict, locale) {
            return locale.monthsShortRegex(isStrict);
        });
        addRegexToken('MMMM', function (isStrict, locale) {
            return locale.monthsRegex(isStrict);
        });
        addParseToken(['M', 'MM'], function (input, array) {
            array[MONTH] = toInt(input) - 1;
        });
        addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {
            var month = config._locale.monthsParse(input, token, config._strict);
            if (month != null) {
                array[MONTH] = month;
            } else {
                getParsingFlags(config).invalidMonth = input;
            }
        });
        var defaultLocaleMonths = ('January_February_March_April_May_June_July_August_September_October_November_December').split('_'), defaultLocaleMonthsShort = ('Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec').split('_'), MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/, defaultMonthsShortRegex = matchWord, defaultMonthsRegex = matchWord;
        function localeMonths(m, format) {
            if (!m) {
                return isArray(this._months) ? this._months : this._months['standalone'];
            }
            return isArray(this._months) ? this._months[m.month()] : this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];
        }
        function localeMonthsShort(m, format) {
            if (!m) {
                return isArray(this._monthsShort) ? this._monthsShort : this._monthsShort['standalone'];
            }
            return isArray(this._monthsShort) ? this._monthsShort[m.month()] : this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];
        }
        function handleStrictParse(monthName, format, strict) {
            var i, ii, mom, llc = monthName.toLocaleLowerCase();
            if (!this._monthsParse) {
                this._monthsParse = [];
                this._longMonthsParse = [];
                this._shortMonthsParse = [];
                for (i = 0; i < 12; ++i) {
                    mom = createUTC([2000, i]);
                    this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();
                    this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();
                }
            }
            if (strict) {
                if (format === 'MMM') {
                    ii = indexOf.call(this._shortMonthsParse, llc);
                    return ii !== -1 ? ii : null;
                } else {
                    ii = indexOf.call(this._longMonthsParse, llc);
                    return ii !== -1 ? ii : null;
                }
            } else {
                if (format === 'MMM') {
                    ii = indexOf.call(this._shortMonthsParse, llc);
                    if (ii !== -1) {
                        return ii;
                    }
                    ii = indexOf.call(this._longMonthsParse, llc);
                    return ii !== -1 ? ii : null;
                } else {
                    ii = indexOf.call(this._longMonthsParse, llc);
                    if (ii !== -1) {
                        return ii;
                    }
                    ii = indexOf.call(this._shortMonthsParse, llc);
                    return ii !== -1 ? ii : null;
                }
            }
        }
        function localeMonthsParse(monthName, format, strict) {
            var i, mom, regex;
            if (this._monthsParseExact) {
                return handleStrictParse.call(this, monthName, format, strict);
            }
            if (!this._monthsParse) {
                this._monthsParse = [];
                this._longMonthsParse = [];
                this._shortMonthsParse = [];
            }
            for (i = 0; i < 12; i++) {
                mom = createUTC([2000, i]);
                if (strict && !this._longMonthsParse[i]) {
                    this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');
                    this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');
                }
                if (!strict && !this._monthsParse[i]) {
                    regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');
                    this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');
                }
                if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {
                    return i;
                } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {
                    return i;
                } else if (!strict && this._monthsParse[i].test(monthName)) {
                    return i;
                }
            }
        }
        function setMonth(mom, value) {
            if (!mom.isValid()) {
                return mom;
            }
            if (typeof value === 'string') {
                if ((/^\d+$/).test(value)) {
                    value = toInt(value);
                } else {
                    value = mom.localeData().monthsParse(value);
                    if (!isNumber(value)) {
                        return mom;
                    }
                }
            }
            var month = value, date = mom.date();
            date = date < 29 ? date : Math.min(date, daysInMonth(mom.year(), month));
            void (mom._isUTC ? mom._d.setUTCMonth(month, date) : mom._d.setMonth(month, date));
            return mom;
        }
        function getSetMonth(value) {
            if (value != null) {
                setMonth(this, value);
                hooks.updateOffset(this, true);
                return this;
            } else {
                return get(this, 'Month');
            }
        }
        function getDaysInMonth() {
            return daysInMonth(this.year(), this.month());
        }
        function monthsShortRegex(isStrict) {
            if (this._monthsParseExact) {
                if (!hasOwnProp(this, '_monthsRegex')) {
                    computeMonthsParse.call(this);
                }
                if (isStrict) {
                    return this._monthsShortStrictRegex;
                } else {
                    return this._monthsShortRegex;
                }
            } else {
                if (!hasOwnProp(this, '_monthsShortRegex')) {
                    this._monthsShortRegex = defaultMonthsShortRegex;
                }
                return this._monthsShortStrictRegex && isStrict ? this._monthsShortStrictRegex : this._monthsShortRegex;
            }
        }
        function monthsRegex(isStrict) {
            if (this._monthsParseExact) {
                if (!hasOwnProp(this, '_monthsRegex')) {
                    computeMonthsParse.call(this);
                }
                if (isStrict) {
                    return this._monthsStrictRegex;
                } else {
                    return this._monthsRegex;
                }
            } else {
                if (!hasOwnProp(this, '_monthsRegex')) {
                    this._monthsRegex = defaultMonthsRegex;
                }
                return this._monthsStrictRegex && isStrict ? this._monthsStrictRegex : this._monthsRegex;
            }
        }
        function computeMonthsParse() {
            function cmpLenRev(a, b) {
                return b.length - a.length;
            }
            var shortPieces = [], longPieces = [], mixedPieces = [], i, mom, shortP, longP;
            for (i = 0; i < 12; i++) {
                mom = createUTC([2000, i]);
                shortP = regexEscape(this.monthsShort(mom, ''));
                longP = regexEscape(this.months(mom, ''));
                shortPieces.push(shortP);
                longPieces.push(longP);
                mixedPieces.push(longP);
                mixedPieces.push(shortP);
            }
            shortPieces.sort(cmpLenRev);
            longPieces.sort(cmpLenRev);
            mixedPieces.sort(cmpLenRev);
            this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
            this._monthsShortRegex = this._monthsRegex;
            this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');
            this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');
        }
        function createDate(y, m, d, h, M, s, ms) {
            var date;
            if (y < 100 && y >= 0) {
                date = new Date(y + 400, m, d, h, M, s, ms);
                if (isFinite(date.getFullYear())) {
                    date.setFullYear(y);
                }
            } else {
                date = new Date(y, m, d, h, M, s, ms);
            }
            return date;
        }
        function createUTCDate(y) {
            var date, args;
            if (y < 100 && y >= 0) {
                args = Array.prototype.slice.call(arguments);
                args[0] = y + 400;
                date = new Date(Date.UTC.apply(null, args));
                if (isFinite(date.getUTCFullYear())) {
                    date.setUTCFullYear(y);
                }
            } else {
                date = new Date(Date.UTC.apply(null, arguments));
            }
            return date;
        }
        function firstWeekOffset(year, dow, doy) {
            var fwd = 7 + dow - doy, fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;
            return -fwdlw + fwd - 1;
        }
        function dayOfYearFromWeeks(year, week, weekday, dow, doy) {
            var localWeekday = (7 + weekday - dow) % 7, weekOffset = firstWeekOffset(year, dow, doy), dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset, resYear, resDayOfYear;
            if (dayOfYear <= 0) {
                resYear = year - 1;
                resDayOfYear = daysInYear(resYear) + dayOfYear;
            } else if (dayOfYear > daysInYear(year)) {
                resYear = year + 1;
                resDayOfYear = dayOfYear - daysInYear(year);
            } else {
                resYear = year;
                resDayOfYear = dayOfYear;
            }
            return {
                year: resYear,
                dayOfYear: resDayOfYear
            };
        }
        function weekOfYear(mom, dow, doy) {
            var weekOffset = firstWeekOffset(mom.year(), dow, doy), week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, resWeek, resYear;
            if (week < 1) {
                resYear = mom.year() - 1;
                resWeek = week + weeksInYear(resYear, dow, doy);
            } else if (week > weeksInYear(mom.year(), dow, doy)) {
                resWeek = week - weeksInYear(mom.year(), dow, doy);
                resYear = mom.year() + 1;
            } else {
                resYear = mom.year();
                resWeek = week;
            }
            return {
                week: resWeek,
                year: resYear
            };
        }
        function weeksInYear(year, dow, doy) {
            var weekOffset = firstWeekOffset(year, dow, doy), weekOffsetNext = firstWeekOffset(year + 1, dow, doy);
            return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;
        }
        addFormatToken('w', ['ww', 2], 'wo', 'week');
        addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');
        addRegexToken('w', match1to2, match1to2NoLeadingZero);
        addRegexToken('ww', match1to2, match2);
        addRegexToken('W', match1to2, match1to2NoLeadingZero);
        addRegexToken('WW', match1to2, match2);
        addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {
            week[token.substr(0, 1)] = toInt(input);
        });
        function localeWeek(mom) {
            return weekOfYear(mom, this._week.dow, this._week.doy).week;
        }
        var defaultLocaleWeek = {
            dow: 0,
            doy: 6
        };
        function localeFirstDayOfWeek() {
            return this._week.dow;
        }
        function localeFirstDayOfYear() {
            return this._week.doy;
        }
        function getSetWeek(input) {
            var week = this.localeData().week(this);
            return input == null ? week : this.add((input - week) * 7, 'd');
        }
        function getSetISOWeek(input) {
            var week = weekOfYear(this, 1, 4).week;
            return input == null ? week : this.add((input - week) * 7, 'd');
        }
        addFormatToken('d', 0, 'do', 'day');
        addFormatToken('dd', 0, 0, function (format) {
            return this.localeData().weekdaysMin(this, format);
        });
        addFormatToken('ddd', 0, 0, function (format) {
            return this.localeData().weekdaysShort(this, format);
        });
        addFormatToken('dddd', 0, 0, function (format) {
            return this.localeData().weekdays(this, format);
        });
        addFormatToken('e', 0, 0, 'weekday');
        addFormatToken('E', 0, 0, 'isoWeekday');
        addRegexToken('d', match1to2);
        addRegexToken('e', match1to2);
        addRegexToken('E', match1to2);
        addRegexToken('dd', function (isStrict, locale) {
            return locale.weekdaysMinRegex(isStrict);
        });
        addRegexToken('ddd', function (isStrict, locale) {
            return locale.weekdaysShortRegex(isStrict);
        });
        addRegexToken('dddd', function (isStrict, locale) {
            return locale.weekdaysRegex(isStrict);
        });
        addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {
            var weekday = config._locale.weekdaysParse(input, token, config._strict);
            if (weekday != null) {
                week.d = weekday;
            } else {
                getParsingFlags(config).invalidWeekday = input;
            }
        });
        addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {
            week[token] = toInt(input);
        });
        function parseWeekday(input, locale) {
            if (typeof input !== 'string') {
                return input;
            }
            if (!isNaN(input)) {
                return parseInt(input, 10);
            }
            input = locale.weekdaysParse(input);
            if (typeof input === 'number') {
                return input;
            }
            return null;
        }
        function parseIsoWeekday(input, locale) {
            if (typeof input === 'string') {
                return locale.weekdaysParse(input) % 7 || 7;
            }
            return isNaN(input) ? null : input;
        }
        function shiftWeekdays(ws, n) {
            return ws.slice(n, 7).concat(ws.slice(0, n));
        }
        var defaultLocaleWeekdays = ('Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday').split('_'), defaultLocaleWeekdaysShort = ('Sun_Mon_Tue_Wed_Thu_Fri_Sat').split('_'), defaultLocaleWeekdaysMin = ('Su_Mo_Tu_We_Th_Fr_Sa').split('_'), defaultWeekdaysRegex = matchWord, defaultWeekdaysShortRegex = matchWord, defaultWeekdaysMinRegex = matchWord;
        function localeWeekdays(m, format) {
            var weekdays = isArray(this._weekdays) ? this._weekdays : this._weekdays[m && m !== true && this._weekdays.isFormat.test(format) ? 'format' : 'standalone'];
            return m === true ? shiftWeekdays(weekdays, this._week.dow) : m ? weekdays[m.day()] : weekdays;
        }
        function localeWeekdaysShort(m) {
            return m === true ? shiftWeekdays(this._weekdaysShort, this._week.dow) : m ? this._weekdaysShort[m.day()] : this._weekdaysShort;
        }
        function localeWeekdaysMin(m) {
            return m === true ? shiftWeekdays(this._weekdaysMin, this._week.dow) : m ? this._weekdaysMin[m.day()] : this._weekdaysMin;
        }
        function handleStrictParse$1(weekdayName, format, strict) {
            var i, ii, mom, llc = weekdayName.toLocaleLowerCase();
            if (!this._weekdaysParse) {
                this._weekdaysParse = [];
                this._shortWeekdaysParse = [];
                this._minWeekdaysParse = [];
                for (i = 0; i < 7; ++i) {
                    mom = createUTC([2000, 1]).day(i);
                    this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase();
                    this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase();
                    this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();
                }
            }
            if (strict) {
                if (format === 'dddd') {
                    ii = indexOf.call(this._weekdaysParse, llc);
                    return ii !== -1 ? ii : null;
                } else if (format === 'ddd') {
                    ii = indexOf.call(this._shortWeekdaysParse, llc);
                    return ii !== -1 ? ii : null;
                } else {
                    ii = indexOf.call(this._minWeekdaysParse, llc);
                    return ii !== -1 ? ii : null;
                }
            } else {
                if (format === 'dddd') {
                    ii = indexOf.call(this._weekdaysParse, llc);
                    if (ii !== -1) {
                        return ii;
                    }
                    ii = indexOf.call(this._shortWeekdaysParse, llc);
                    if (ii !== -1) {
                        return ii;
                    }
                    ii = indexOf.call(this._minWeekdaysParse, llc);
                    return ii !== -1 ? ii : null;
                } else if (format === 'ddd') {
                    ii = indexOf.call(this._shortWeekdaysParse, llc);
                    if (ii !== -1) {
                        return ii;
                    }
                    ii = indexOf.call(this._weekdaysParse, llc);
                    if (ii !== -1) {
                        return ii;
                    }
                    ii = indexOf.call(this._minWeekdaysParse, llc);
                    return ii !== -1 ? ii : null;
                } else {
                    ii = indexOf.call(this._minWeekdaysParse, llc);
                    if (ii !== -1) {
                        return ii;
                    }
                    ii = indexOf.call(this._weekdaysParse, llc);
                    if (ii !== -1) {
                        return ii;
                    }
                    ii = indexOf.call(this._shortWeekdaysParse, llc);
                    return ii !== -1 ? ii : null;
                }
            }
        }
        function localeWeekdaysParse(weekdayName, format, strict) {
            var i, mom, regex;
            if (this._weekdaysParseExact) {
                return handleStrictParse$1.call(this, weekdayName, format, strict);
            }
            if (!this._weekdaysParse) {
                this._weekdaysParse = [];
                this._minWeekdaysParse = [];
                this._shortWeekdaysParse = [];
                this._fullWeekdaysParse = [];
            }
            for (i = 0; i < 7; i++) {
                mom = createUTC([2000, 1]).day(i);
                if (strict && !this._fullWeekdaysParse[i]) {
                    this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\.?') + '$', 'i');
                    this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\.?') + '$', 'i');
                    this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\.?') + '$', 'i');
                }
                if (!this._weekdaysParse[i]) {
                    regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');
                    this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');
                }
                if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {
                    return i;
                } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {
                    return i;
                } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {
                    return i;
                } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {
                    return i;
                }
            }
        }
        function getSetDayOfWeek(input) {
            if (!this.isValid()) {
                return input != null ? this : NaN;
            }
            var day = get(this, 'Day');
            if (input != null) {
                input = parseWeekday(input, this.localeData());
                return this.add(input - day, 'd');
            } else {
                return day;
            }
        }
        function getSetLocaleDayOfWeek(input) {
            if (!this.isValid()) {
                return input != null ? this : NaN;
            }
            var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;
            return input == null ? weekday : this.add(input - weekday, 'd');
        }
        function getSetISODayOfWeek(input) {
            if (!this.isValid()) {
                return input != null ? this : NaN;
            }
            if (input != null) {
                var weekday = parseIsoWeekday(input, this.localeData());
                return this.day(this.day() % 7 ? weekday : weekday - 7);
            } else {
                return this.day() || 7;
            }
        }
        function weekdaysRegex(isStrict) {
            if (this._weekdaysParseExact) {
                if (!hasOwnProp(this, '_weekdaysRegex')) {
                    computeWeekdaysParse.call(this);
                }
                if (isStrict) {
                    return this._weekdaysStrictRegex;
                } else {
                    return this._weekdaysRegex;
                }
            } else {
                if (!hasOwnProp(this, '_weekdaysRegex')) {
                    this._weekdaysRegex = defaultWeekdaysRegex;
                }
                return this._weekdaysStrictRegex && isStrict ? this._weekdaysStrictRegex : this._weekdaysRegex;
            }
        }
        function weekdaysShortRegex(isStrict) {
            if (this._weekdaysParseExact) {
                if (!hasOwnProp(this, '_weekdaysRegex')) {
                    computeWeekdaysParse.call(this);
                }
                if (isStrict) {
                    return this._weekdaysShortStrictRegex;
                } else {
                    return this._weekdaysShortRegex;
                }
            } else {
                if (!hasOwnProp(this, '_weekdaysShortRegex')) {
                    this._weekdaysShortRegex = defaultWeekdaysShortRegex;
                }
                return this._weekdaysShortStrictRegex && isStrict ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex;
            }
        }
        function weekdaysMinRegex(isStrict) {
            if (this._weekdaysParseExact) {
                if (!hasOwnProp(this, '_weekdaysRegex')) {
                    computeWeekdaysParse.call(this);
                }
                if (isStrict) {
                    return this._weekdaysMinStrictRegex;
                } else {
                    return this._weekdaysMinRegex;
                }
            } else {
                if (!hasOwnProp(this, '_weekdaysMinRegex')) {
                    this._weekdaysMinRegex = defaultWeekdaysMinRegex;
                }
                return this._weekdaysMinStrictRegex && isStrict ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex;
            }
        }
        function computeWeekdaysParse() {
            function cmpLenRev(a, b) {
                return b.length - a.length;
            }
            var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [], i, mom, minp, shortp, longp;
            for (i = 0; i < 7; i++) {
                mom = createUTC([2000, 1]).day(i);
                minp = regexEscape(this.weekdaysMin(mom, ''));
                shortp = regexEscape(this.weekdaysShort(mom, ''));
                longp = regexEscape(this.weekdays(mom, ''));
                minPieces.push(minp);
                shortPieces.push(shortp);
                longPieces.push(longp);
                mixedPieces.push(minp);
                mixedPieces.push(shortp);
                mixedPieces.push(longp);
            }
            minPieces.sort(cmpLenRev);
            shortPieces.sort(cmpLenRev);
            longPieces.sort(cmpLenRev);
            mixedPieces.sort(cmpLenRev);
            this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
            this._weekdaysShortRegex = this._weekdaysRegex;
            this._weekdaysMinRegex = this._weekdaysRegex;
            this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');
            this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');
            this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');
        }
        function hFormat() {
            return this.hours() % 12 || 12;
        }
        function kFormat() {
            return this.hours() || 24;
        }
        addFormatToken('H', ['HH', 2], 0, 'hour');
        addFormatToken('h', ['hh', 2], 0, hFormat);
        addFormatToken('k', ['kk', 2], 0, kFormat);
        addFormatToken('hmm', 0, 0, function () {
            return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);
        });
        addFormatToken('hmmss', 0, 0, function () {
            return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2);
        });
        addFormatToken('Hmm', 0, 0, function () {
            return '' + this.hours() + zeroFill(this.minutes(), 2);
        });
        addFormatToken('Hmmss', 0, 0, function () {
            return '' + this.hours() + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2);
        });
        function meridiem(token, lowercase) {
            addFormatToken(token, 0, 0, function () {
                return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);
            });
        }
        meridiem('a', true);
        meridiem('A', false);
        function matchMeridiem(isStrict, locale) {
            return locale._meridiemParse;
        }
        addRegexToken('a', matchMeridiem);
        addRegexToken('A', matchMeridiem);
        addRegexToken('H', match1to2, match1to2HasZero);
        addRegexToken('h', match1to2, match1to2NoLeadingZero);
        addRegexToken('k', match1to2, match1to2NoLeadingZero);
        addRegexToken('HH', match1to2, match2);
        addRegexToken('hh', match1to2, match2);
        addRegexToken('kk', match1to2, match2);
        addRegexToken('hmm', match3to4);
        addRegexToken('hmmss', match5to6);
        addRegexToken('Hmm', match3to4);
        addRegexToken('Hmmss', match5to6);
        addParseToken(['H', 'HH'], HOUR);
        addParseToken(['k', 'kk'], function (input, array, config) {
            var kInput = toInt(input);
            array[HOUR] = kInput === 24 ? 0 : kInput;
        });
        addParseToken(['a', 'A'], function (input, array, config) {
            config._isPm = config._locale.isPM(input);
            config._meridiem = input;
        });
        addParseToken(['h', 'hh'], function (input, array, config) {
            array[HOUR] = toInt(input);
            getParsingFlags(config).bigHour = true;
        });
        addParseToken('hmm', function (input, array, config) {
            var pos = input.length - 2;
            array[HOUR] = toInt(input.substr(0, pos));
            array[MINUTE] = toInt(input.substr(pos));
            getParsingFlags(config).bigHour = true;
        });
        addParseToken('hmmss', function (input, array, config) {
            var pos1 = input.length - 4, pos2 = input.length - 2;
            array[HOUR] = toInt(input.substr(0, pos1));
            array[MINUTE] = toInt(input.substr(pos1, 2));
            array[SECOND] = toInt(input.substr(pos2));
            getParsingFlags(config).bigHour = true;
        });
        addParseToken('Hmm', function (input, array, config) {
            var pos = input.length - 2;
            array[HOUR] = toInt(input.substr(0, pos));
            array[MINUTE] = toInt(input.substr(pos));
        });
        addParseToken('Hmmss', function (input, array, config) {
            var pos1 = input.length - 4, pos2 = input.length - 2;
            array[HOUR] = toInt(input.substr(0, pos1));
            array[MINUTE] = toInt(input.substr(pos1, 2));
            array[SECOND] = toInt(input.substr(pos2));
        });
        function localeIsPM(input) {
            return (input + '').toLowerCase().charAt(0) === 'p';
        }
        var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i, getSetHour = makeGetSet('Hours', true);
        function localeMeridiem(hours, minutes, isLower) {
            if (hours > 11) {
                return isLower ? 'pm' : 'PM';
            } else {
                return isLower ? 'am' : 'AM';
            }
        }
        var baseConfig = {
            calendar: defaultCalendar,
            longDateFormat: defaultLongDateFormat,
            invalidDate: defaultInvalidDate,
            ordinal: defaultOrdinal,
            dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,
            relativeTime: defaultRelativeTime,
            months: defaultLocaleMonths,
            monthsShort: defaultLocaleMonthsShort,
            week: defaultLocaleWeek,
            weekdays: defaultLocaleWeekdays,
            weekdaysMin: defaultLocaleWeekdaysMin,
            weekdaysShort: defaultLocaleWeekdaysShort,
            meridiemParse: defaultLocaleMeridiemParse
        };
        var locales = {}, localeFamilies = {}, globalLocale;
        function commonPrefix(arr1, arr2) {
            var i, minl = Math.min(arr1.length, arr2.length);
            for (i = 0; i < minl; i += 1) {
                if (arr1[i] !== arr2[i]) {
                    return i;
                }
            }
            return minl;
        }
        function normalizeLocale(key) {
            return key ? key.toLowerCase().replace('_', '-') : key;
        }
        function chooseLocale(names) {
            var i = 0, j, next, locale, split;
            while (i < names.length) {
                split = normalizeLocale(names[i]).split('-');
                j = split.length;
                next = normalizeLocale(names[i + 1]);
                next = next ? next.split('-') : null;
                while (j > 0) {
                    locale = loadLocale(split.slice(0, j).join('-'));
                    if (locale) {
                        return locale;
                    }
                    if (next && next.length >= j && commonPrefix(split, next) >= j - 1) {
                        break;
                    }
                    j--;
                }
                i++;
            }
            return globalLocale;
        }
        function isLocaleNameSane(name) {
            return !!(name && name.match('^[^/\\\\]*$'));
        }
        function loadLocale(name) {
            var oldLocale = null, aliasedRequire;
            if (locales[name] === undefined && 'object' !== 'undefined' && module && module.exports && isLocaleNameSane(name)) {
                try {
                    oldLocale = globalLocale._abbr;
                    aliasedRequire = commonjsRequire;
                    aliasedRequire('./locale/' + name);
                    getSetGlobalLocale(oldLocale);
                } catch (e) {
                    locales[name] = null;
                }
            }
            return locales[name];
        }
        function getSetGlobalLocale(key, values) {
            var data;
            if (key) {
                if (isUndefined(values)) {
                    data = getLocale(key);
                } else {
                    data = defineLocale(key, values);
                }
                if (data) {
                    globalLocale = data;
                } else {
                    if (typeof console !== 'undefined' && console.warn) {
                        console.warn('Locale ' + key + ' not found. Did you forget to load it?');
                    }
                }
            }
            return globalLocale._abbr;
        }
        function defineLocale(name, config) {
            if (config !== null) {
                var locale, parentConfig = baseConfig;
                config.abbr = name;
                if (locales[name] != null) {
                    deprecateSimple('defineLocaleOverride', 'use moment.updateLocale(localeName, config) to change ' + 'an existing locale. moment.defineLocale(localeName, ' + 'config) should only be used for creating a new locale ' + 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.');
                    parentConfig = locales[name]._config;
                } else if (config.parentLocale != null) {
                    if (locales[config.parentLocale] != null) {
                        parentConfig = locales[config.parentLocale]._config;
                    } else {
                        locale = loadLocale(config.parentLocale);
                        if (locale != null) {
                            parentConfig = locale._config;
                        } else {
                            if (!localeFamilies[config.parentLocale]) {
                                localeFamilies[config.parentLocale] = [];
                            }
                            localeFamilies[config.parentLocale].push({
                                name: name,
                                config: config
                            });
                            return null;
                        }
                    }
                }
                locales[name] = new Locale(mergeConfigs(parentConfig, config));
                if (localeFamilies[name]) {
                    localeFamilies[name].forEach(function (x) {
                        defineLocale(x.name, x.config);
                    });
                }
                getSetGlobalLocale(name);
                return locales[name];
            } else {
                delete locales[name];
                return null;
            }
        }
        function updateLocale(name, config) {
            if (config != null) {
                var locale, tmpLocale, parentConfig = baseConfig;
                if (locales[name] != null && locales[name].parentLocale != null) {
                    locales[name].set(mergeConfigs(locales[name]._config, config));
                } else {
                    tmpLocale = loadLocale(name);
                    if (tmpLocale != null) {
                        parentConfig = tmpLocale._config;
                    }
                    config = mergeConfigs(parentConfig, config);
                    if (tmpLocale == null) {
                        config.abbr = name;
                    }
                    locale = new Locale(config);
                    locale.parentLocale = locales[name];
                    locales[name] = locale;
                }
                getSetGlobalLocale(name);
            } else {
                if (locales[name] != null) {
                    if (locales[name].parentLocale != null) {
                        locales[name] = locales[name].parentLocale;
                        if (name === getSetGlobalLocale()) {
                            getSetGlobalLocale(name);
                        }
                    } else if (locales[name] != null) {
                        delete locales[name];
                    }
                }
            }
            return locales[name];
        }
        function getLocale(key) {
            var locale;
            if (key && key._locale && key._locale._abbr) {
                key = key._locale._abbr;
            }
            if (!key) {
                return globalLocale;
            }
            if (!isArray(key)) {
                locale = loadLocale(key);
                if (locale) {
                    return locale;
                }
                key = [key];
            }
            return chooseLocale(key);
        }
        function listLocales() {
            return keys(locales);
        }
        function checkOverflow(m) {
            var overflow, a = m._a;
            if (a && getParsingFlags(m).overflow === -2) {
                overflow = a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : a[HOUR] < 0 || a[HOUR] > 24 || a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0) ? HOUR : a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : -1;
                if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {
                    overflow = DATE;
                }
                if (getParsingFlags(m)._overflowWeeks && overflow === -1) {
                    overflow = WEEK;
                }
                if (getParsingFlags(m)._overflowWeekday && overflow === -1) {
                    overflow = WEEKDAY;
                }
                getParsingFlags(m).overflow = overflow;
            }
            return m;
        }
        var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, tzRegex = /Z|[+-]\d\d(?::?\d\d)?/, isoDates = [['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/], ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/], ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/], ['GGGG-[W]WW', /\d{4}-W\d\d/, false], ['YYYY-DDD', /\d{4}-\d{3}/], ['YYYY-MM', /\d{4}-\d\d/, false], ['YYYYYYMMDD', /[+-]\d{10}/], ['YYYYMMDD', /\d{8}/], ['GGGG[W]WWE', /\d{4}W\d{3}/], ['GGGG[W]WW', /\d{4}W\d{2}/, false], ['YYYYDDD', /\d{7}/], ['YYYYMM', /\d{6}/, false], ['YYYY', /\d{4}/, false]], isoTimes = [['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/], ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/], ['HH:mm:ss', /\d\d:\d\d:\d\d/], ['HH:mm', /\d\d:\d\d/], ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/], ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/], ['HHmmss', /\d\d\d\d\d\d/], ['HHmm', /\d\d\d\d/], ['HH', /\d\d/]], aspNetJsonRegex = /^\/?Date\((-?\d+)/i, rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/, obsOffsets = {
            UT: 0,
            GMT: 0,
            EDT: -4 * 60,
            EST: -5 * 60,
            CDT: -5 * 60,
            CST: -6 * 60,
            MDT: -6 * 60,
            MST: -7 * 60,
            PDT: -7 * 60,
            PST: -8 * 60
        };
        function configFromISO(config) {
            var i, l, string = config._i, match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), allowTime, dateFormat, timeFormat, tzFormat, isoDatesLen = isoDates.length, isoTimesLen = isoTimes.length;
            if (match) {
                getParsingFlags(config).iso = true;
                for ((i = 0, l = isoDatesLen); i < l; i++) {
                    if (isoDates[i][1].exec(match[1])) {
                        dateFormat = isoDates[i][0];
                        allowTime = isoDates[i][2] !== false;
                        break;
                    }
                }
                if (dateFormat == null) {
                    config._isValid = false;
                    return;
                }
                if (match[3]) {
                    for ((i = 0, l = isoTimesLen); i < l; i++) {
                        if (isoTimes[i][1].exec(match[3])) {
                            timeFormat = (match[2] || ' ') + isoTimes[i][0];
                            break;
                        }
                    }
                    if (timeFormat == null) {
                        config._isValid = false;
                        return;
                    }
                }
                if (!allowTime && timeFormat != null) {
                    config._isValid = false;
                    return;
                }
                if (match[4]) {
                    if (tzRegex.exec(match[4])) {
                        tzFormat = 'Z';
                    } else {
                        config._isValid = false;
                        return;
                    }
                }
                config._f = dateFormat + (timeFormat || '') + (tzFormat || '');
                configFromStringAndFormat(config);
            } else {
                config._isValid = false;
            }
        }
        function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {
            var result = [untruncateYear(yearStr), defaultLocaleMonthsShort.indexOf(monthStr), parseInt(dayStr, 10), parseInt(hourStr, 10), parseInt(minuteStr, 10)];
            if (secondStr) {
                result.push(parseInt(secondStr, 10));
            }
            return result;
        }
        function untruncateYear(yearStr) {
            var year = parseInt(yearStr, 10);
            if (year <= 49) {
                return 2000 + year;
            } else if (year <= 999) {
                return 1900 + year;
            }
            return year;
        }
        function preprocessRFC2822(s) {
            return s.replace(/\([^()]*\)|[\n\t]/g, ' ').replace(/(\s\s+)/g, ' ').replace(/^\s\s*/, '').replace(/\s\s*$/, '');
        }
        function checkWeekday(weekdayStr, parsedInput, config) {
            if (weekdayStr) {
                var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr), weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();
                if (weekdayProvided !== weekdayActual) {
                    getParsingFlags(config).weekdayMismatch = true;
                    config._isValid = false;
                    return false;
                }
            }
            return true;
        }
        function calculateOffset(obsOffset, militaryOffset, numOffset) {
            if (obsOffset) {
                return obsOffsets[obsOffset];
            } else if (militaryOffset) {
                return 0;
            } else {
                var hm = parseInt(numOffset, 10), m = hm % 100, h = (hm - m) / 100;
                return h * 60 + m;
            }
        }
        function configFromRFC2822(config) {
            var match = rfc2822.exec(preprocessRFC2822(config._i)), parsedArray;
            if (match) {
                parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);
                if (!checkWeekday(match[1], parsedArray, config)) {
                    return;
                }
                config._a = parsedArray;
                config._tzm = calculateOffset(match[8], match[9], match[10]);
                config._d = createUTCDate.apply(null, config._a);
                config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);
                getParsingFlags(config).rfc2822 = true;
            } else {
                config._isValid = false;
            }
        }
        function configFromString(config) {
            var matched = aspNetJsonRegex.exec(config._i);
            if (matched !== null) {
                config._d = new Date(+matched[1]);
                return;
            }
            configFromISO(config);
            if (config._isValid === false) {
                delete config._isValid;
            } else {
                return;
            }
            configFromRFC2822(config);
            if (config._isValid === false) {
                delete config._isValid;
            } else {
                return;
            }
            if (config._strict) {
                config._isValid = false;
            } else {
                hooks.createFromInputFallback(config);
            }
        }
        hooks.createFromInputFallback = deprecate('value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.', function (config) {
            config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));
        });
        function defaults(a, b, c) {
            if (a != null) {
                return a;
            }
            if (b != null) {
                return b;
            }
            return c;
        }
        function currentDateArray(config) {
            var nowValue = new Date(hooks.now());
            if (config._useUTC) {
                return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];
            }
            return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];
        }
        function configFromArray(config) {
            var i, date, input = [], currentDate, expectedWeekday, yearToUse;
            if (config._d) {
                return;
            }
            currentDate = currentDateArray(config);
            if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {
                dayOfYearFromWeekInfo(config);
            }
            if (config._dayOfYear != null) {
                yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);
                if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {
                    getParsingFlags(config)._overflowDayOfYear = true;
                }
                date = createUTCDate(yearToUse, 0, config._dayOfYear);
                config._a[MONTH] = date.getUTCMonth();
                config._a[DATE] = date.getUTCDate();
            }
            for (i = 0; i < 3 && config._a[i] == null; ++i) {
                config._a[i] = input[i] = currentDate[i];
            }
            for (; i < 7; i++) {
                config._a[i] = input[i] = config._a[i] == null ? i === 2 ? 1 : 0 : config._a[i];
            }
            if (config._a[HOUR] === 24 && config._a[MINUTE] === 0 && config._a[SECOND] === 0 && config._a[MILLISECOND] === 0) {
                config._nextDay = true;
                config._a[HOUR] = 0;
            }
            config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);
            expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay();
            if (config._tzm != null) {
                config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);
            }
            if (config._nextDay) {
                config._a[HOUR] = 24;
            }
            if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {
                getParsingFlags(config).weekdayMismatch = true;
            }
        }
        function dayOfYearFromWeekInfo(config) {
            var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;
            w = config._w;
            if (w.GG != null || w.W != null || w.E != null) {
                dow = 1;
                doy = 4;
                weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);
                week = defaults(w.W, 1);
                weekday = defaults(w.E, 1);
                if (weekday < 1 || weekday > 7) {
                    weekdayOverflow = true;
                }
            } else {
                dow = config._locale._week.dow;
                doy = config._locale._week.doy;
                curWeek = weekOfYear(createLocal(), dow, doy);
                weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);
                week = defaults(w.w, curWeek.week);
                if (w.d != null) {
                    weekday = w.d;
                    if (weekday < 0 || weekday > 6) {
                        weekdayOverflow = true;
                    }
                } else if (w.e != null) {
                    weekday = w.e + dow;
                    if (w.e < 0 || w.e > 6) {
                        weekdayOverflow = true;
                    }
                } else {
                    weekday = dow;
                }
            }
            if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {
                getParsingFlags(config)._overflowWeeks = true;
            } else if (weekdayOverflow != null) {
                getParsingFlags(config)._overflowWeekday = true;
            } else {
                temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);
                config._a[YEAR] = temp.year;
                config._dayOfYear = temp.dayOfYear;
            }
        }
        hooks.ISO_8601 = function () {};
        hooks.RFC_2822 = function () {};
        function configFromStringAndFormat(config) {
            if (config._f === hooks.ISO_8601) {
                configFromISO(config);
                return;
            }
            if (config._f === hooks.RFC_2822) {
                configFromRFC2822(config);
                return;
            }
            config._a = [];
            getParsingFlags(config).empty = true;
            var string = '' + config._i, i, parsedInput, tokens, token, skipped, stringLength = string.length, totalParsedInputLength = 0, era, tokenLen;
            tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];
            tokenLen = tokens.length;
            for (i = 0; i < tokenLen; i++) {
                token = tokens[i];
                parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];
                if (parsedInput) {
                    skipped = string.substr(0, string.indexOf(parsedInput));
                    if (skipped.length > 0) {
                        getParsingFlags(config).unusedInput.push(skipped);
                    }
                    string = string.slice(string.indexOf(parsedInput) + parsedInput.length);
                    totalParsedInputLength += parsedInput.length;
                }
                if (formatTokenFunctions[token]) {
                    if (parsedInput) {
                        getParsingFlags(config).empty = false;
                    } else {
                        getParsingFlags(config).unusedTokens.push(token);
                    }
                    addTimeToArrayFromToken(token, parsedInput, config);
                } else if (config._strict && !parsedInput) {
                    getParsingFlags(config).unusedTokens.push(token);
                }
            }
            getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;
            if (string.length > 0) {
                getParsingFlags(config).unusedInput.push(string);
            }
            if (config._a[HOUR] <= 12 && getParsingFlags(config).bigHour === true && config._a[HOUR] > 0) {
                getParsingFlags(config).bigHour = undefined;
            }
            getParsingFlags(config).parsedDateParts = config._a.slice(0);
            getParsingFlags(config).meridiem = config._meridiem;
            config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);
            era = getParsingFlags(config).era;
            if (era !== null) {
                config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);
            }
            configFromArray(config);
            checkOverflow(config);
        }
        function meridiemFixWrap(locale, hour, meridiem) {
            var isPm;
            if (meridiem == null) {
                return hour;
            }
            if (locale.meridiemHour != null) {
                return locale.meridiemHour(hour, meridiem);
            } else if (locale.isPM != null) {
                isPm = locale.isPM(meridiem);
                if (isPm && hour < 12) {
                    hour += 12;
                }
                if (!isPm && hour === 12) {
                    hour = 0;
                }
                return hour;
            } else {
                return hour;
            }
        }
        function configFromStringAndArray(config) {
            var tempConfig, bestMoment, scoreToBeat, i, currentScore, validFormatFound, bestFormatIsValid = false, configfLen = config._f.length;
            if (configfLen === 0) {
                getParsingFlags(config).invalidFormat = true;
                config._d = new Date(NaN);
                return;
            }
            for (i = 0; i < configfLen; i++) {
                currentScore = 0;
                validFormatFound = false;
                tempConfig = copyConfig({}, config);
                if (config._useUTC != null) {
                    tempConfig._useUTC = config._useUTC;
                }
                tempConfig._f = config._f[i];
                configFromStringAndFormat(tempConfig);
                if (isValid(tempConfig)) {
                    validFormatFound = true;
                }
                currentScore += getParsingFlags(tempConfig).charsLeftOver;
                currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;
                getParsingFlags(tempConfig).score = currentScore;
                if (!bestFormatIsValid) {
                    if (scoreToBeat == null || currentScore < scoreToBeat || validFormatFound) {
                        scoreToBeat = currentScore;
                        bestMoment = tempConfig;
                        if (validFormatFound) {
                            bestFormatIsValid = true;
                        }
                    }
                } else {
                    if (currentScore < scoreToBeat) {
                        scoreToBeat = currentScore;
                        bestMoment = tempConfig;
                    }
                }
            }
            extend(config, bestMoment || tempConfig);
        }
        function configFromObject(config) {
            if (config._d) {
                return;
            }
            var i = normalizeObjectUnits(config._i), dayOrDate = i.day === undefined ? i.date : i.day;
            config._a = map([i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond], function (obj) {
                return obj && parseInt(obj, 10);
            });
            configFromArray(config);
        }
        function createFromConfig(config) {
            var res = new Moment(checkOverflow(prepareConfig(config)));
            if (res._nextDay) {
                res.add(1, 'd');
                res._nextDay = undefined;
            }
            return res;
        }
        function prepareConfig(config) {
            var input = config._i, format = config._f;
            config._locale = config._locale || getLocale(config._l);
            if (input === null || format === undefined && input === '') {
                return createInvalid({
                    nullInput: true
                });
            }
            if (typeof input === 'string') {
                config._i = input = config._locale.preparse(input);
            }
            if (isMoment(input)) {
                return new Moment(checkOverflow(input));
            } else if (isDate(input)) {
                config._d = input;
            } else if (isArray(format)) {
                configFromStringAndArray(config);
            } else if (format) {
                configFromStringAndFormat(config);
            } else {
                configFromInput(config);
            }
            if (!isValid(config)) {
                config._d = null;
            }
            return config;
        }
        function configFromInput(config) {
            var input = config._i;
            if (isUndefined(input)) {
                config._d = new Date(hooks.now());
            } else if (isDate(input)) {
                config._d = new Date(input.valueOf());
            } else if (typeof input === 'string') {
                configFromString(config);
            } else if (isArray(input)) {
                config._a = map(input.slice(0), function (obj) {
                    return parseInt(obj, 10);
                });
                configFromArray(config);
            } else if (isObject(input)) {
                configFromObject(config);
            } else if (isNumber(input)) {
                config._d = new Date(input);
            } else {
                hooks.createFromInputFallback(config);
            }
        }
        function createLocalOrUTC(input, format, locale, strict, isUTC) {
            var c = {};
            if (format === true || format === false) {
                strict = format;
                format = undefined;
            }
            if (locale === true || locale === false) {
                strict = locale;
                locale = undefined;
            }
            if (isObject(input) && isObjectEmpty(input) || isArray(input) && input.length === 0) {
                input = undefined;
            }
            c._isAMomentObject = true;
            c._useUTC = c._isUTC = isUTC;
            c._l = locale;
            c._i = input;
            c._f = format;
            c._strict = strict;
            return createFromConfig(c);
        }
        function createLocal(input, format, locale, strict) {
            return createLocalOrUTC(input, format, locale, strict, false);
        }
        var prototypeMin = deprecate('moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', function () {
            var other = createLocal.apply(null, arguments);
            if (this.isValid() && other.isValid()) {
                return other < this ? this : other;
            } else {
                return createInvalid();
            }
        }), prototypeMax = deprecate('moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', function () {
            var other = createLocal.apply(null, arguments);
            if (this.isValid() && other.isValid()) {
                return other > this ? this : other;
            } else {
                return createInvalid();
            }
        });
        function pickBy(fn, moments) {
            var res, i;
            if (moments.length === 1 && isArray(moments[0])) {
                moments = moments[0];
            }
            if (!moments.length) {
                return createLocal();
            }
            res = moments[0];
            for (i = 1; i < moments.length; ++i) {
                if (!moments[i].isValid() || moments[i][fn](res)) {
                    res = moments[i];
                }
            }
            return res;
        }
        function min() {
            var args = [].slice.call(arguments, 0);
            return pickBy('isBefore', args);
        }
        function max() {
            var args = [].slice.call(arguments, 0);
            return pickBy('isAfter', args);
        }
        var now = function () {
            return Date.now ? Date.now() : +new Date();
        };
        var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];
        function isDurationValid(m) {
            var key, unitHasDecimal = false, i, orderLen = ordering.length;
            for (key in m) {
                if (hasOwnProp(m, key) && !(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) {
                    return false;
                }
            }
            for (i = 0; i < orderLen; ++i) {
                if (m[ordering[i]]) {
                    if (unitHasDecimal) {
                        return false;
                    }
                    if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {
                        unitHasDecimal = true;
                    }
                }
            }
            return true;
        }
        function isValid$1() {
            return this._isValid;
        }
        function createInvalid$1() {
            return createDuration(NaN);
        }
        function Duration(duration) {
            var normalizedInput = normalizeObjectUnits(duration), years = normalizedInput.year || 0, quarters = normalizedInput.quarter || 0, months = normalizedInput.month || 0, weeks = normalizedInput.week || normalizedInput.isoWeek || 0, days = normalizedInput.day || 0, hours = normalizedInput.hour || 0, minutes = normalizedInput.minute || 0, seconds = normalizedInput.second || 0, milliseconds = normalizedInput.millisecond || 0;
            this._isValid = isDurationValid(normalizedInput);
            this._milliseconds = +milliseconds + seconds * 1e3 + minutes * 6e4 + hours * 1000 * 60 * 60;
            this._days = +days + weeks * 7;
            this._months = +months + quarters * 3 + years * 12;
            this._data = {};
            this._locale = getLocale();
            this._bubble();
        }
        function isDuration(obj) {
            return obj instanceof Duration;
        }
        function absRound(number) {
            if (number < 0) {
                return Math.round(-1 * number) * -1;
            } else {
                return Math.round(number);
            }
        }
        function compareArrays(array1, array2, dontConvert) {
            var len = Math.min(array1.length, array2.length), lengthDiff = Math.abs(array1.length - array2.length), diffs = 0, i;
            for (i = 0; i < len; i++) {
                if (dontConvert && array1[i] !== array2[i] || !dontConvert && toInt(array1[i]) !== toInt(array2[i])) {
                    diffs++;
                }
            }
            return diffs + lengthDiff;
        }
        function offset(token, separator) {
            addFormatToken(token, 0, 0, function () {
                var offset = this.utcOffset(), sign = '+';
                if (offset < 0) {
                    offset = -offset;
                    sign = '-';
                }
                return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~offset % 60, 2);
            });
        }
        offset('Z', ':');
        offset('ZZ', '');
        addRegexToken('Z', matchShortOffset);
        addRegexToken('ZZ', matchShortOffset);
        addParseToken(['Z', 'ZZ'], function (input, array, config) {
            config._useUTC = true;
            config._tzm = offsetFromString(matchShortOffset, input);
        });
        var chunkOffset = /([\+\-]|\d\d)/gi;
        function offsetFromString(matcher, string) {
            var matches = (string || '').match(matcher), chunk, parts, minutes;
            if (matches === null) {
                return null;
            }
            chunk = matches[matches.length - 1] || [];
            parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];
            minutes = +(parts[1] * 60) + toInt(parts[2]);
            return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;
        }
        function cloneWithOffset(input, model) {
            var res, diff;
            if (model._isUTC) {
                res = model.clone();
                diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf();
                res._d.setTime(res._d.valueOf() + diff);
                hooks.updateOffset(res, false);
                return res;
            } else {
                return createLocal(input).local();
            }
        }
        function getDateOffset(m) {
            return -Math.round(m._d.getTimezoneOffset());
        }
        hooks.updateOffset = function () {};
        function getSetOffset(input, keepLocalTime, keepMinutes) {
            var offset = this._offset || 0, localAdjust;
            if (!this.isValid()) {
                return input != null ? this : NaN;
            }
            if (input != null) {
                if (typeof input === 'string') {
                    input = offsetFromString(matchShortOffset, input);
                    if (input === null) {
                        return this;
                    }
                } else if (Math.abs(input) < 16 && !keepMinutes) {
                    input = input * 60;
                }
                if (!this._isUTC && keepLocalTime) {
                    localAdjust = getDateOffset(this);
                }
                this._offset = input;
                this._isUTC = true;
                if (localAdjust != null) {
                    this.add(localAdjust, 'm');
                }
                if (offset !== input) {
                    if (!keepLocalTime || this._changeInProgress) {
                        addSubtract(this, createDuration(input - offset, 'm'), 1, false);
                    } else if (!this._changeInProgress) {
                        this._changeInProgress = true;
                        hooks.updateOffset(this, true);
                        this._changeInProgress = null;
                    }
                }
                return this;
            } else {
                return this._isUTC ? offset : getDateOffset(this);
            }
        }
        function getSetZone(input, keepLocalTime) {
            if (input != null) {
                if (typeof input !== 'string') {
                    input = -input;
                }
                this.utcOffset(input, keepLocalTime);
                return this;
            } else {
                return -this.utcOffset();
            }
        }
        function setOffsetToUTC(keepLocalTime) {
            return this.utcOffset(0, keepLocalTime);
        }
        function setOffsetToLocal(keepLocalTime) {
            if (this._isUTC) {
                this.utcOffset(0, keepLocalTime);
                this._isUTC = false;
                if (keepLocalTime) {
                    this.subtract(getDateOffset(this), 'm');
                }
            }
            return this;
        }
        function setOffsetToParsedOffset() {
            if (this._tzm != null) {
                this.utcOffset(this._tzm, false, true);
            } else if (typeof this._i === 'string') {
                var tZone = offsetFromString(matchOffset, this._i);
                if (tZone != null) {
                    this.utcOffset(tZone);
                } else {
                    this.utcOffset(0, true);
                }
            }
            return this;
        }
        function hasAlignedHourOffset(input) {
            if (!this.isValid()) {
                return false;
            }
            input = input ? createLocal(input).utcOffset() : 0;
            return (this.utcOffset() - input) % 60 === 0;
        }
        function isDaylightSavingTime() {
            return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset();
        }
        function isDaylightSavingTimeShifted() {
            if (!isUndefined(this._isDSTShifted)) {
                return this._isDSTShifted;
            }
            var c = {}, other;
            copyConfig(c, this);
            c = prepareConfig(c);
            if (c._a) {
                other = c._isUTC ? createUTC(c._a) : createLocal(c._a);
                this._isDSTShifted = this.isValid() && compareArrays(c._a, other.toArray()) > 0;
            } else {
                this._isDSTShifted = false;
            }
            return this._isDSTShifted;
        }
        function isLocal() {
            return this.isValid() ? !this._isUTC : false;
        }
        function isUtcOffset() {
            return this.isValid() ? this._isUTC : false;
        }
        function isUtc() {
            return this.isValid() ? this._isUTC && this._offset === 0 : false;
        }
        var aspNetRegex = /^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/, isoRegex = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;
        function createDuration(input, key) {
            var duration = input, match = null, sign, ret, diffRes;
            if (isDuration(input)) {
                duration = {
                    ms: input._milliseconds,
                    d: input._days,
                    M: input._months
                };
            } else if (isNumber(input) || !isNaN(+input)) {
                duration = {};
                if (key) {
                    duration[key] = +input;
                } else {
                    duration.milliseconds = +input;
                }
            } else if (match = aspNetRegex.exec(input)) {
                sign = match[1] === '-' ? -1 : 1;
                duration = {
                    y: 0,
                    d: toInt(match[DATE]) * sign,
                    h: toInt(match[HOUR]) * sign,
                    m: toInt(match[MINUTE]) * sign,
                    s: toInt(match[SECOND]) * sign,
                    ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign
                };
            } else if (match = isoRegex.exec(input)) {
                sign = match[1] === '-' ? -1 : 1;
                duration = {
                    y: parseIso(match[2], sign),
                    M: parseIso(match[3], sign),
                    w: parseIso(match[4], sign),
                    d: parseIso(match[5], sign),
                    h: parseIso(match[6], sign),
                    m: parseIso(match[7], sign),
                    s: parseIso(match[8], sign)
                };
            } else if (duration == null) {
                duration = {};
            } else if (typeof duration === 'object' && (('from' in duration) || ('to' in duration))) {
                diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));
                duration = {};
                duration.ms = diffRes.milliseconds;
                duration.M = diffRes.months;
            }
            ret = new Duration(duration);
            if (isDuration(input) && hasOwnProp(input, '_locale')) {
                ret._locale = input._locale;
            }
            if (isDuration(input) && hasOwnProp(input, '_isValid')) {
                ret._isValid = input._isValid;
            }
            return ret;
        }
        createDuration.fn = Duration.prototype;
        createDuration.invalid = createInvalid$1;
        function parseIso(inp, sign) {
            var res = inp && parseFloat(inp.replace(',', '.'));
            return (isNaN(res) ? 0 : res) * sign;
        }
        function positiveMomentsDifference(base, other) {
            var res = {};
            res.months = other.month() - base.month() + (other.year() - base.year()) * 12;
            if (base.clone().add(res.months, 'M').isAfter(other)) {
                --res.months;
            }
            res.milliseconds = +other - +base.clone().add(res.months, 'M');
            return res;
        }
        function momentsDifference(base, other) {
            var res;
            if (!(base.isValid() && other.isValid())) {
                return {
                    milliseconds: 0,
                    months: 0
                };
            }
            other = cloneWithOffset(other, base);
            if (base.isBefore(other)) {
                res = positiveMomentsDifference(base, other);
            } else {
                res = positiveMomentsDifference(other, base);
                res.milliseconds = -res.milliseconds;
                res.months = -res.months;
            }
            return res;
        }
        function createAdder(direction, name) {
            return function (val, period) {
                var dur, tmp;
                if (period !== null && !isNaN(+period)) {
                    deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' + 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');
                    tmp = val;
                    val = period;
                    period = tmp;
                }
                dur = createDuration(val, period);
                addSubtract(this, dur, direction);
                return this;
            };
        }
        function addSubtract(mom, duration, isAdding, updateOffset) {
            var milliseconds = duration._milliseconds, days = absRound(duration._days), months = absRound(duration._months);
            if (!mom.isValid()) {
                return;
            }
            updateOffset = updateOffset == null ? true : updateOffset;
            if (months) {
                setMonth(mom, get(mom, 'Month') + months * isAdding);
            }
            if (days) {
                set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);
            }
            if (milliseconds) {
                mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);
            }
            if (updateOffset) {
                hooks.updateOffset(mom, days || months);
            }
        }
        var add = createAdder(1, 'add'), subtract = createAdder(-1, 'subtract');
        function isString(input) {
            return typeof input === 'string' || input instanceof String;
        }
        function isMomentInput(input) {
            return isMoment(input) || isDate(input) || isString(input) || isNumber(input) || isNumberOrStringArray(input) || isMomentInputObject(input) || input === null || input === undefined;
        }
        function isMomentInputObject(input) {
            var objectTest = isObject(input) && !isObjectEmpty(input), propertyTest = false, properties = ['years', 'year', 'y', 'months', 'month', 'M', 'days', 'day', 'd', 'dates', 'date', 'D', 'hours', 'hour', 'h', 'minutes', 'minute', 'm', 'seconds', 'second', 's', 'milliseconds', 'millisecond', 'ms'], i, property, propertyLen = properties.length;
            for (i = 0; i < propertyLen; i += 1) {
                property = properties[i];
                propertyTest = propertyTest || hasOwnProp(input, property);
            }
            return objectTest && propertyTest;
        }
        function isNumberOrStringArray(input) {
            var arrayTest = isArray(input), dataTypeTest = false;
            if (arrayTest) {
                dataTypeTest = input.filter(function (item) {
                    return !isNumber(item) && isString(input);
                }).length === 0;
            }
            return arrayTest && dataTypeTest;
        }
        function isCalendarSpec(input) {
            var objectTest = isObject(input) && !isObjectEmpty(input), propertyTest = false, properties = ['sameDay', 'nextDay', 'lastDay', 'nextWeek', 'lastWeek', 'sameElse'], i, property;
            for (i = 0; i < properties.length; i += 1) {
                property = properties[i];
                propertyTest = propertyTest || hasOwnProp(input, property);
            }
            return objectTest && propertyTest;
        }
        function getCalendarFormat(myMoment, now) {
            var diff = myMoment.diff(now, 'days', true);
            return diff < -6 ? 'sameElse' : diff < -1 ? 'lastWeek' : diff < 0 ? 'lastDay' : diff < 1 ? 'sameDay' : diff < 2 ? 'nextDay' : diff < 7 ? 'nextWeek' : 'sameElse';
        }
        function calendar$1(time, formats) {
            if (arguments.length === 1) {
                if (!arguments[0]) {
                    time = undefined;
                    formats = undefined;
                } else if (isMomentInput(arguments[0])) {
                    time = arguments[0];
                    formats = undefined;
                } else if (isCalendarSpec(arguments[0])) {
                    formats = arguments[0];
                    time = undefined;
                }
            }
            var now = time || createLocal(), sod = cloneWithOffset(now, this).startOf('day'), format = hooks.calendarFormat(this, sod) || 'sameElse', output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);
            return this.format(output || this.localeData().calendar(format, this, createLocal(now)));
        }
        function clone() {
            return new Moment(this);
        }
        function isAfter(input, units) {
            var localInput = isMoment(input) ? input : createLocal(input);
            if (!(this.isValid() && localInput.isValid())) {
                return false;
            }
            units = normalizeUnits(units) || 'millisecond';
            if (units === 'millisecond') {
                return this.valueOf() > localInput.valueOf();
            } else {
                return localInput.valueOf() < this.clone().startOf(units).valueOf();
            }
        }
        function isBefore(input, units) {
            var localInput = isMoment(input) ? input : createLocal(input);
            if (!(this.isValid() && localInput.isValid())) {
                return false;
            }
            units = normalizeUnits(units) || 'millisecond';
            if (units === 'millisecond') {
                return this.valueOf() < localInput.valueOf();
            } else {
                return this.clone().endOf(units).valueOf() < localInput.valueOf();
            }
        }
        function isBetween(from, to, units, inclusivity) {
            var localFrom = isMoment(from) ? from : createLocal(from), localTo = isMoment(to) ? to : createLocal(to);
            if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {
                return false;
            }
            inclusivity = inclusivity || '()';
            return (inclusivity[0] === '(' ? this.isAfter(localFrom, units) : !this.isBefore(localFrom, units)) && (inclusivity[1] === ')' ? this.isBefore(localTo, units) : !this.isAfter(localTo, units));
        }
        function isSame(input, units) {
            var localInput = isMoment(input) ? input : createLocal(input), inputMs;
            if (!(this.isValid() && localInput.isValid())) {
                return false;
            }
            units = normalizeUnits(units) || 'millisecond';
            if (units === 'millisecond') {
                return this.valueOf() === localInput.valueOf();
            } else {
                inputMs = localInput.valueOf();
                return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();
            }
        }
        function isSameOrAfter(input, units) {
            return this.isSame(input, units) || this.isAfter(input, units);
        }
        function isSameOrBefore(input, units) {
            return this.isSame(input, units) || this.isBefore(input, units);
        }
        function diff(input, units, asFloat) {
            var that, zoneDelta, output;
            if (!this.isValid()) {
                return NaN;
            }
            that = cloneWithOffset(input, this);
            if (!that.isValid()) {
                return NaN;
            }
            zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;
            units = normalizeUnits(units);
            switch (units) {
                case 'year':
                    output = monthDiff(this, that) / 12;
                    break;
                case 'month':
                    output = monthDiff(this, that);
                    break;
                case 'quarter':
                    output = monthDiff(this, that) / 3;
                    break;
                case 'second':
                    output = (this - that) / 1e3;
                    break;
                case 'minute':
                    output = (this - that) / 6e4;
                    break;
                case 'hour':
                    output = (this - that) / 36e5;
                    break;
                case 'day':
                    output = (this - that - zoneDelta) / 864e5;
                    break;
                case 'week':
                    output = (this - that - zoneDelta) / 6048e5;
                    break;
                default:
                    output = this - that;
            }
            return asFloat ? output : absFloor(output);
        }
        function monthDiff(a, b) {
            if (a.date() < b.date()) {
                return -monthDiff(b, a);
            }
            var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()), anchor = a.clone().add(wholeMonthDiff, 'months'), anchor2, adjust;
            if (b - anchor < 0) {
                anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');
                adjust = (b - anchor) / (anchor - anchor2);
            } else {
                anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');
                adjust = (b - anchor) / (anchor2 - anchor);
            }
            return -(wholeMonthDiff + adjust) || 0;
        }
        hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';
        hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';
        function toString() {
            return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');
        }
        function toISOString(keepOffset) {
            if (!this.isValid()) {
                return null;
            }
            var utc = keepOffset !== true, m = utc ? this.clone().utc() : this;
            if (m.year() < 0 || m.year() > 9999) {
                return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ');
            }
            if (isFunction(Date.prototype.toISOString)) {
                if (utc) {
                    return this.toDate().toISOString();
                } else {
                    return new Date(this.valueOf() + this.utcOffset() * 60 * 1000).toISOString().replace('Z', formatMoment(m, 'Z'));
                }
            }
            return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ');
        }
        function inspect() {
            if (!this.isValid()) {
                return 'moment.invalid(/* ' + this._i + ' */)';
            }
            var func = 'moment', zone = '', prefix, year, datetime, suffix;
            if (!this.isLocal()) {
                func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';
                zone = 'Z';
            }
            prefix = '[' + func + '("]';
            year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';
            datetime = '-MM-DD[T]HH:mm:ss.SSS';
            suffix = zone + '[")]';
            return this.format(prefix + year + datetime + suffix);
        }
        function format(inputString) {
            if (!inputString) {
                inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;
            }
            var output = formatMoment(this, inputString);
            return this.localeData().postformat(output);
        }
        function from(time, withoutSuffix) {
            if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) {
                return createDuration({
                    to: this,
                    from: time
                }).locale(this.locale()).humanize(!withoutSuffix);
            } else {
                return this.localeData().invalidDate();
            }
        }
        function fromNow(withoutSuffix) {
            return this.from(createLocal(), withoutSuffix);
        }
        function to(time, withoutSuffix) {
            if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) {
                return createDuration({
                    from: this,
                    to: time
                }).locale(this.locale()).humanize(!withoutSuffix);
            } else {
                return this.localeData().invalidDate();
            }
        }
        function toNow(withoutSuffix) {
            return this.to(createLocal(), withoutSuffix);
        }
        function locale(key) {
            var newLocaleData;
            if (key === undefined) {
                return this._locale._abbr;
            } else {
                newLocaleData = getLocale(key);
                if (newLocaleData != null) {
                    this._locale = newLocaleData;
                }
                return this;
            }
        }
        var lang = deprecate('moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', function (key) {
            if (key === undefined) {
                return this.localeData();
            } else {
                return this.locale(key);
            }
        });
        function localeData() {
            return this._locale;
        }
        var MS_PER_SECOND = 1000, MS_PER_MINUTE = 60 * MS_PER_SECOND, MS_PER_HOUR = 60 * MS_PER_MINUTE, MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;
        function mod$1(dividend, divisor) {
            return (dividend % divisor + divisor) % divisor;
        }
        function localStartOfDate(y, m, d) {
            if (y < 100 && y >= 0) {
                return new Date(y + 400, m, d) - MS_PER_400_YEARS;
            } else {
                return new Date(y, m, d).valueOf();
            }
        }
        function utcStartOfDate(y, m, d) {
            if (y < 100 && y >= 0) {
                return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;
            } else {
                return Date.UTC(y, m, d);
            }
        }
        function startOf(units) {
            var time, startOfDate;
            units = normalizeUnits(units);
            if (units === undefined || units === 'millisecond' || !this.isValid()) {
                return this;
            }
            startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;
            switch (units) {
                case 'year':
                    time = startOfDate(this.year(), 0, 1);
                    break;
                case 'quarter':
                    time = startOfDate(this.year(), this.month() - this.month() % 3, 1);
                    break;
                case 'month':
                    time = startOfDate(this.year(), this.month(), 1);
                    break;
                case 'week':
                    time = startOfDate(this.year(), this.month(), this.date() - this.weekday());
                    break;
                case 'isoWeek':
                    time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1));
                    break;
                case 'day':
                case 'date':
                    time = startOfDate(this.year(), this.month(), this.date());
                    break;
                case 'hour':
                    time = this._d.valueOf();
                    time -= mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR);
                    break;
                case 'minute':
                    time = this._d.valueOf();
                    time -= mod$1(time, MS_PER_MINUTE);
                    break;
                case 'second':
                    time = this._d.valueOf();
                    time -= mod$1(time, MS_PER_SECOND);
                    break;
            }
            this._d.setTime(time);
            hooks.updateOffset(this, true);
            return this;
        }
        function endOf(units) {
            var time, startOfDate;
            units = normalizeUnits(units);
            if (units === undefined || units === 'millisecond' || !this.isValid()) {
                return this;
            }
            startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;
            switch (units) {
                case 'year':
                    time = startOfDate(this.year() + 1, 0, 1) - 1;
                    break;
                case 'quarter':
                    time = startOfDate(this.year(), this.month() - this.month() % 3 + 3, 1) - 1;
                    break;
                case 'month':
                    time = startOfDate(this.year(), this.month() + 1, 1) - 1;
                    break;
                case 'week':
                    time = startOfDate(this.year(), this.month(), this.date() - this.weekday() + 7) - 1;
                    break;
                case 'isoWeek':
                    time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7) - 1;
                    break;
                case 'day':
                case 'date':
                    time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;
                    break;
                case 'hour':
                    time = this._d.valueOf();
                    time += MS_PER_HOUR - mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR) - 1;
                    break;
                case 'minute':
                    time = this._d.valueOf();
                    time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;
                    break;
                case 'second':
                    time = this._d.valueOf();
                    time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;
                    break;
            }
            this._d.setTime(time);
            hooks.updateOffset(this, true);
            return this;
        }
        function valueOf() {
            return this._d.valueOf() - (this._offset || 0) * 60000;
        }
        function unix() {
            return Math.floor(this.valueOf() / 1000);
        }
        function toDate() {
            return new Date(this.valueOf());
        }
        function toArray() {
            var m = this;
            return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];
        }
        function toObject() {
            var m = this;
            return {
                years: m.year(),
                months: m.month(),
                date: m.date(),
                hours: m.hours(),
                minutes: m.minutes(),
                seconds: m.seconds(),
                milliseconds: m.milliseconds()
            };
        }
        function toJSON() {
            return this.isValid() ? this.toISOString() : null;
        }
        function isValid$2() {
            return isValid(this);
        }
        function parsingFlags() {
            return extend({}, getParsingFlags(this));
        }
        function invalidAt() {
            return getParsingFlags(this).overflow;
        }
        function creationData() {
            return {
                input: this._i,
                format: this._f,
                locale: this._locale,
                isUTC: this._isUTC,
                strict: this._strict
            };
        }
        addFormatToken('N', 0, 0, 'eraAbbr');
        addFormatToken('NN', 0, 0, 'eraAbbr');
        addFormatToken('NNN', 0, 0, 'eraAbbr');
        addFormatToken('NNNN', 0, 0, 'eraName');
        addFormatToken('NNNNN', 0, 0, 'eraNarrow');
        addFormatToken('y', ['y', 1], 'yo', 'eraYear');
        addFormatToken('y', ['yy', 2], 0, 'eraYear');
        addFormatToken('y', ['yyy', 3], 0, 'eraYear');
        addFormatToken('y', ['yyyy', 4], 0, 'eraYear');
        addRegexToken('N', matchEraAbbr);
        addRegexToken('NN', matchEraAbbr);
        addRegexToken('NNN', matchEraAbbr);
        addRegexToken('NNNN', matchEraName);
        addRegexToken('NNNNN', matchEraNarrow);
        addParseToken(['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], function (input, array, config, token) {
            var era = config._locale.erasParse(input, token, config._strict);
            if (era) {
                getParsingFlags(config).era = era;
            } else {
                getParsingFlags(config).invalidEra = input;
            }
        });
        addRegexToken('y', matchUnsigned);
        addRegexToken('yy', matchUnsigned);
        addRegexToken('yyy', matchUnsigned);
        addRegexToken('yyyy', matchUnsigned);
        addRegexToken('yo', matchEraYearOrdinal);
        addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);
        addParseToken(['yo'], function (input, array, config, token) {
            var match;
            if (config._locale._eraYearOrdinalRegex) {
                match = input.match(config._locale._eraYearOrdinalRegex);
            }
            if (config._locale.eraYearOrdinalParse) {
                array[YEAR] = config._locale.eraYearOrdinalParse(input, match);
            } else {
                array[YEAR] = parseInt(input, 10);
            }
        });
        function localeEras(m, format) {
            var i, l, date, eras = this._eras || getLocale('en')._eras;
            for ((i = 0, l = eras.length); i < l; ++i) {
                switch (typeof eras[i].since) {
                    case 'string':
                        date = hooks(eras[i].since).startOf('day');
                        eras[i].since = date.valueOf();
                        break;
                }
                switch (typeof eras[i].until) {
                    case 'undefined':
                        eras[i].until = +Infinity;
                        break;
                    case 'string':
                        date = hooks(eras[i].until).startOf('day').valueOf();
                        eras[i].until = date.valueOf();
                        break;
                }
            }
            return eras;
        }
        function localeErasParse(eraName, format, strict) {
            var i, l, eras = this.eras(), name, abbr, narrow;
            eraName = eraName.toUpperCase();
            for ((i = 0, l = eras.length); i < l; ++i) {
                name = eras[i].name.toUpperCase();
                abbr = eras[i].abbr.toUpperCase();
                narrow = eras[i].narrow.toUpperCase();
                if (strict) {
                    switch (format) {
                        case 'N':
                        case 'NN':
                        case 'NNN':
                            if (abbr === eraName) {
                                return eras[i];
                            }
                            break;
                        case 'NNNN':
                            if (name === eraName) {
                                return eras[i];
                            }
                            break;
                        case 'NNNNN':
                            if (narrow === eraName) {
                                return eras[i];
                            }
                            break;
                    }
                } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {
                    return eras[i];
                }
            }
        }
        function localeErasConvertYear(era, year) {
            var dir = era.since <= era.until ? +1 : -1;
            if (year === undefined) {
                return hooks(era.since).year();
            } else {
                return hooks(era.since).year() + (year - era.offset) * dir;
            }
        }
        function getEraName() {
            var i, l, val, eras = this.localeData().eras();
            for ((i = 0, l = eras.length); i < l; ++i) {
                val = this.clone().startOf('day').valueOf();
                if (eras[i].since <= val && val <= eras[i].until) {
                    return eras[i].name;
                }
                if (eras[i].until <= val && val <= eras[i].since) {
                    return eras[i].name;
                }
            }
            return '';
        }
        function getEraNarrow() {
            var i, l, val, eras = this.localeData().eras();
            for ((i = 0, l = eras.length); i < l; ++i) {
                val = this.clone().startOf('day').valueOf();
                if (eras[i].since <= val && val <= eras[i].until) {
                    return eras[i].narrow;
                }
                if (eras[i].until <= val && val <= eras[i].since) {
                    return eras[i].narrow;
                }
            }
            return '';
        }
        function getEraAbbr() {
            var i, l, val, eras = this.localeData().eras();
            for ((i = 0, l = eras.length); i < l; ++i) {
                val = this.clone().startOf('day').valueOf();
                if (eras[i].since <= val && val <= eras[i].until) {
                    return eras[i].abbr;
                }
                if (eras[i].until <= val && val <= eras[i].since) {
                    return eras[i].abbr;
                }
            }
            return '';
        }
        function getEraYear() {
            var i, l, dir, val, eras = this.localeData().eras();
            for ((i = 0, l = eras.length); i < l; ++i) {
                dir = eras[i].since <= eras[i].until ? +1 : -1;
                val = this.clone().startOf('day').valueOf();
                if (eras[i].since <= val && val <= eras[i].until || eras[i].until <= val && val <= eras[i].since) {
                    return (this.year() - hooks(eras[i].since).year()) * dir + eras[i].offset;
                }
            }
            return this.year();
        }
        function erasNameRegex(isStrict) {
            if (!hasOwnProp(this, '_erasNameRegex')) {
                computeErasParse.call(this);
            }
            return isStrict ? this._erasNameRegex : this._erasRegex;
        }
        function erasAbbrRegex(isStrict) {
            if (!hasOwnProp(this, '_erasAbbrRegex')) {
                computeErasParse.call(this);
            }
            return isStrict ? this._erasAbbrRegex : this._erasRegex;
        }
        function erasNarrowRegex(isStrict) {
            if (!hasOwnProp(this, '_erasNarrowRegex')) {
                computeErasParse.call(this);
            }
            return isStrict ? this._erasNarrowRegex : this._erasRegex;
        }
        function matchEraAbbr(isStrict, locale) {
            return locale.erasAbbrRegex(isStrict);
        }
        function matchEraName(isStrict, locale) {
            return locale.erasNameRegex(isStrict);
        }
        function matchEraNarrow(isStrict, locale) {
            return locale.erasNarrowRegex(isStrict);
        }
        function matchEraYearOrdinal(isStrict, locale) {
            return locale._eraYearOrdinalRegex || matchUnsigned;
        }
        function computeErasParse() {
            var abbrPieces = [], namePieces = [], narrowPieces = [], mixedPieces = [], i, l, erasName, erasAbbr, erasNarrow, eras = this.eras();
            for ((i = 0, l = eras.length); i < l; ++i) {
                erasName = regexEscape(eras[i].name);
                erasAbbr = regexEscape(eras[i].abbr);
                erasNarrow = regexEscape(eras[i].narrow);
                namePieces.push(erasName);
                abbrPieces.push(erasAbbr);
                narrowPieces.push(erasNarrow);
                mixedPieces.push(erasName);
                mixedPieces.push(erasAbbr);
                mixedPieces.push(erasNarrow);
            }
            this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
            this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');
            this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');
            this._erasNarrowRegex = new RegExp('^(' + narrowPieces.join('|') + ')', 'i');
        }
        addFormatToken(0, ['gg', 2], 0, function () {
            return this.weekYear() % 100;
        });
        addFormatToken(0, ['GG', 2], 0, function () {
            return this.isoWeekYear() % 100;
        });
        function addWeekYearFormatToken(token, getter) {
            addFormatToken(0, [token, token.length], 0, getter);
        }
        addWeekYearFormatToken('gggg', 'weekYear');
        addWeekYearFormatToken('ggggg', 'weekYear');
        addWeekYearFormatToken('GGGG', 'isoWeekYear');
        addWeekYearFormatToken('GGGGG', 'isoWeekYear');
        addRegexToken('G', matchSigned);
        addRegexToken('g', matchSigned);
        addRegexToken('GG', match1to2, match2);
        addRegexToken('gg', match1to2, match2);
        addRegexToken('GGGG', match1to4, match4);
        addRegexToken('gggg', match1to4, match4);
        addRegexToken('GGGGG', match1to6, match6);
        addRegexToken('ggggg', match1to6, match6);
        addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {
            week[token.substr(0, 2)] = toInt(input);
        });
        addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {
            week[token] = hooks.parseTwoDigitYear(input);
        });
        function getSetWeekYear(input) {
            return getSetWeekYearHelper.call(this, input, this.week(), this.weekday() + this.localeData()._week.dow, this.localeData()._week.dow, this.localeData()._week.doy);
        }
        function getSetISOWeekYear(input) {
            return getSetWeekYearHelper.call(this, input, this.isoWeek(), this.isoWeekday(), 1, 4);
        }
        function getISOWeeksInYear() {
            return weeksInYear(this.year(), 1, 4);
        }
        function getISOWeeksInISOWeekYear() {
            return weeksInYear(this.isoWeekYear(), 1, 4);
        }
        function getWeeksInYear() {
            var weekInfo = this.localeData()._week;
            return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);
        }
        function getWeeksInWeekYear() {
            var weekInfo = this.localeData()._week;
            return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);
        }
        function getSetWeekYearHelper(input, week, weekday, dow, doy) {
            var weeksTarget;
            if (input == null) {
                return weekOfYear(this, dow, doy).year;
            } else {
                weeksTarget = weeksInYear(input, dow, doy);
                if (week > weeksTarget) {
                    week = weeksTarget;
                }
                return setWeekAll.call(this, input, week, weekday, dow, doy);
            }
        }
        function setWeekAll(weekYear, week, weekday, dow, doy) {
            var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);
            this.year(date.getUTCFullYear());
            this.month(date.getUTCMonth());
            this.date(date.getUTCDate());
            return this;
        }
        addFormatToken('Q', 0, 'Qo', 'quarter');
        addRegexToken('Q', match1);
        addParseToken('Q', function (input, array) {
            array[MONTH] = (toInt(input) - 1) * 3;
        });
        function getSetQuarter(input) {
            return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);
        }
        addFormatToken('D', ['DD', 2], 'Do', 'date');
        addRegexToken('D', match1to2, match1to2NoLeadingZero);
        addRegexToken('DD', match1to2, match2);
        addRegexToken('Do', function (isStrict, locale) {
            return isStrict ? locale._dayOfMonthOrdinalParse || locale._ordinalParse : locale._dayOfMonthOrdinalParseLenient;
        });
        addParseToken(['D', 'DD'], DATE);
        addParseToken('Do', function (input, array) {
            array[DATE] = toInt(input.match(match1to2)[0]);
        });
        var getSetDayOfMonth = makeGetSet('Date', true);
        addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');
        addRegexToken('DDD', match1to3);
        addRegexToken('DDDD', match3);
        addParseToken(['DDD', 'DDDD'], function (input, array, config) {
            config._dayOfYear = toInt(input);
        });
        function getSetDayOfYear(input) {
            var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;
            return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');
        }
        addFormatToken('m', ['mm', 2], 0, 'minute');
        addRegexToken('m', match1to2, match1to2HasZero);
        addRegexToken('mm', match1to2, match2);
        addParseToken(['m', 'mm'], MINUTE);
        var getSetMinute = makeGetSet('Minutes', false);
        addFormatToken('s', ['ss', 2], 0, 'second');
        addRegexToken('s', match1to2, match1to2HasZero);
        addRegexToken('ss', match1to2, match2);
        addParseToken(['s', 'ss'], SECOND);
        var getSetSecond = makeGetSet('Seconds', false);
        addFormatToken('S', 0, 0, function () {
            return ~~(this.millisecond() / 100);
        });
        addFormatToken(0, ['SS', 2], 0, function () {
            return ~~(this.millisecond() / 10);
        });
        addFormatToken(0, ['SSS', 3], 0, 'millisecond');
        addFormatToken(0, ['SSSS', 4], 0, function () {
            return this.millisecond() * 10;
        });
        addFormatToken(0, ['SSSSS', 5], 0, function () {
            return this.millisecond() * 100;
        });
        addFormatToken(0, ['SSSSSS', 6], 0, function () {
            return this.millisecond() * 1000;
        });
        addFormatToken(0, ['SSSSSSS', 7], 0, function () {
            return this.millisecond() * 10000;
        });
        addFormatToken(0, ['SSSSSSSS', 8], 0, function () {
            return this.millisecond() * 100000;
        });
        addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {
            return this.millisecond() * 1000000;
        });
        addRegexToken('S', match1to3, match1);
        addRegexToken('SS', match1to3, match2);
        addRegexToken('SSS', match1to3, match3);
        var token, getSetMillisecond;
        for (token = 'SSSS'; token.length <= 9; token += 'S') {
            addRegexToken(token, matchUnsigned);
        }
        function parseMs(input, array) {
            array[MILLISECOND] = toInt(('0.' + input) * 1000);
        }
        for (token = 'S'; token.length <= 9; token += 'S') {
            addParseToken(token, parseMs);
        }
        getSetMillisecond = makeGetSet('Milliseconds', false);
        addFormatToken('z', 0, 0, 'zoneAbbr');
        addFormatToken('zz', 0, 0, 'zoneName');
        function getZoneAbbr() {
            return this._isUTC ? 'UTC' : '';
        }
        function getZoneName() {
            return this._isUTC ? 'Coordinated Universal Time' : '';
        }
        var proto = Moment.prototype;
        proto.add = add;
        proto.calendar = calendar$1;
        proto.clone = clone;
        proto.diff = diff;
        proto.endOf = endOf;
        proto.format = format;
        proto.from = from;
        proto.fromNow = fromNow;
        proto.to = to;
        proto.toNow = toNow;
        proto.get = stringGet;
        proto.invalidAt = invalidAt;
        proto.isAfter = isAfter;
        proto.isBefore = isBefore;
        proto.isBetween = isBetween;
        proto.isSame = isSame;
        proto.isSameOrAfter = isSameOrAfter;
        proto.isSameOrBefore = isSameOrBefore;
        proto.isValid = isValid$2;
        proto.lang = lang;
        proto.locale = locale;
        proto.localeData = localeData;
        proto.max = prototypeMax;
        proto.min = prototypeMin;
        proto.parsingFlags = parsingFlags;
        proto.set = stringSet;
        proto.startOf = startOf;
        proto.subtract = subtract;
        proto.toArray = toArray;
        proto.toObject = toObject;
        proto.toDate = toDate;
        proto.toISOString = toISOString;
        proto.inspect = inspect;
        if (typeof Symbol !== 'undefined' && Symbol.for != null) {
            proto[Symbol.for('nodejs.util.inspect.custom')] = function () {
                return 'Moment<' + this.format() + '>';
            };
        }
        proto.toJSON = toJSON;
        proto.toString = toString;
        proto.unix = unix;
        proto.valueOf = valueOf;
        proto.creationData = creationData;
        proto.eraName = getEraName;
        proto.eraNarrow = getEraNarrow;
        proto.eraAbbr = getEraAbbr;
        proto.eraYear = getEraYear;
        proto.year = getSetYear;
        proto.isLeapYear = getIsLeapYear;
        proto.weekYear = getSetWeekYear;
        proto.isoWeekYear = getSetISOWeekYear;
        proto.quarter = proto.quarters = getSetQuarter;
        proto.month = getSetMonth;
        proto.daysInMonth = getDaysInMonth;
        proto.week = proto.weeks = getSetWeek;
        proto.isoWeek = proto.isoWeeks = getSetISOWeek;
        proto.weeksInYear = getWeeksInYear;
        proto.weeksInWeekYear = getWeeksInWeekYear;
        proto.isoWeeksInYear = getISOWeeksInYear;
        proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;
        proto.date = getSetDayOfMonth;
        proto.day = proto.days = getSetDayOfWeek;
        proto.weekday = getSetLocaleDayOfWeek;
        proto.isoWeekday = getSetISODayOfWeek;
        proto.dayOfYear = getSetDayOfYear;
        proto.hour = proto.hours = getSetHour;
        proto.minute = proto.minutes = getSetMinute;
        proto.second = proto.seconds = getSetSecond;
        proto.millisecond = proto.milliseconds = getSetMillisecond;
        proto.utcOffset = getSetOffset;
        proto.utc = setOffsetToUTC;
        proto.local = setOffsetToLocal;
        proto.parseZone = setOffsetToParsedOffset;
        proto.hasAlignedHourOffset = hasAlignedHourOffset;
        proto.isDST = isDaylightSavingTime;
        proto.isLocal = isLocal;
        proto.isUtcOffset = isUtcOffset;
        proto.isUtc = isUtc;
        proto.isUTC = isUtc;
        proto.zoneAbbr = getZoneAbbr;
        proto.zoneName = getZoneName;
        proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);
        proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);
        proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear);
        proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);
        proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);
        function createUnix(input) {
            return createLocal(input * 1000);
        }
        function createInZone() {
            return createLocal.apply(null, arguments).parseZone();
        }
        function preParsePostFormat(string) {
            return string;
        }
        var proto$1 = Locale.prototype;
        proto$1.calendar = calendar;
        proto$1.longDateFormat = longDateFormat;
        proto$1.invalidDate = invalidDate;
        proto$1.ordinal = ordinal;
        proto$1.preparse = preParsePostFormat;
        proto$1.postformat = preParsePostFormat;
        proto$1.relativeTime = relativeTime;
        proto$1.pastFuture = pastFuture;
        proto$1.set = set;
        proto$1.eras = localeEras;
        proto$1.erasParse = localeErasParse;
        proto$1.erasConvertYear = localeErasConvertYear;
        proto$1.erasAbbrRegex = erasAbbrRegex;
        proto$1.erasNameRegex = erasNameRegex;
        proto$1.erasNarrowRegex = erasNarrowRegex;
        proto$1.months = localeMonths;
        proto$1.monthsShort = localeMonthsShort;
        proto$1.monthsParse = localeMonthsParse;
        proto$1.monthsRegex = monthsRegex;
        proto$1.monthsShortRegex = monthsShortRegex;
        proto$1.week = localeWeek;
        proto$1.firstDayOfYear = localeFirstDayOfYear;
        proto$1.firstDayOfWeek = localeFirstDayOfWeek;
        proto$1.weekdays = localeWeekdays;
        proto$1.weekdaysMin = localeWeekdaysMin;
        proto$1.weekdaysShort = localeWeekdaysShort;
        proto$1.weekdaysParse = localeWeekdaysParse;
        proto$1.weekdaysRegex = weekdaysRegex;
        proto$1.weekdaysShortRegex = weekdaysShortRegex;
        proto$1.weekdaysMinRegex = weekdaysMinRegex;
        proto$1.isPM = localeIsPM;
        proto$1.meridiem = localeMeridiem;
        function get$1(format, index, field, setter) {
            var locale = getLocale(), utc = createUTC().set(setter, index);
            return locale[field](utc, format);
        }
        function listMonthsImpl(format, index, field) {
            if (isNumber(format)) {
                index = format;
                format = undefined;
            }
            format = format || '';
            if (index != null) {
                return get$1(format, index, field, 'month');
            }
            var i, out = [];
            for (i = 0; i < 12; i++) {
                out[i] = get$1(format, i, field, 'month');
            }
            return out;
        }
        function listWeekdaysImpl(localeSorted, format, index, field) {
            if (typeof localeSorted === 'boolean') {
                if (isNumber(format)) {
                    index = format;
                    format = undefined;
                }
                format = format || '';
            } else {
                format = localeSorted;
                index = format;
                localeSorted = false;
                if (isNumber(format)) {
                    index = format;
                    format = undefined;
                }
                format = format || '';
            }
            var locale = getLocale(), shift = localeSorted ? locale._week.dow : 0, i, out = [];
            if (index != null) {
                return get$1(format, (index + shift) % 7, field, 'day');
            }
            for (i = 0; i < 7; i++) {
                out[i] = get$1(format, (i + shift) % 7, field, 'day');
            }
            return out;
        }
        function listMonths(format, index) {
            return listMonthsImpl(format, index, 'months');
        }
        function listMonthsShort(format, index) {
            return listMonthsImpl(format, index, 'monthsShort');
        }
        function listWeekdays(localeSorted, format, index) {
            return listWeekdaysImpl(localeSorted, format, index, 'weekdays');
        }
        function listWeekdaysShort(localeSorted, format, index) {
            return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');
        }
        function listWeekdaysMin(localeSorted, format, index) {
            return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');
        }
        getSetGlobalLocale('en', {
            eras: [{
                since: '0001-01-01',
                until: +Infinity,
                offset: 1,
                name: 'Anno Domini',
                narrow: 'AD',
                abbr: 'AD'
            }, {
                since: '0000-12-31',
                until: -Infinity,
                offset: 1,
                name: 'Before Christ',
                narrow: 'BC',
                abbr: 'BC'
            }],
            dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/,
            ordinal: function (number) {
                var b = number % 10, output = toInt(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';
                return number + output;
            }
        });
        hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);
        hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);
        var mathAbs = Math.abs;
        function abs() {
            var data = this._data;
            this._milliseconds = mathAbs(this._milliseconds);
            this._days = mathAbs(this._days);
            this._months = mathAbs(this._months);
            data.milliseconds = mathAbs(data.milliseconds);
            data.seconds = mathAbs(data.seconds);
            data.minutes = mathAbs(data.minutes);
            data.hours = mathAbs(data.hours);
            data.months = mathAbs(data.months);
            data.years = mathAbs(data.years);
            return this;
        }
        function addSubtract$1(duration, input, value, direction) {
            var other = createDuration(input, value);
            duration._milliseconds += direction * other._milliseconds;
            duration._days += direction * other._days;
            duration._months += direction * other._months;
            return duration._bubble();
        }
        function add$1(input, value) {
            return addSubtract$1(this, input, value, 1);
        }
        function subtract$1(input, value) {
            return addSubtract$1(this, input, value, -1);
        }
        function absCeil(number) {
            if (number < 0) {
                return Math.floor(number);
            } else {
                return Math.ceil(number);
            }
        }
        function bubble() {
            var milliseconds = this._milliseconds, days = this._days, months = this._months, data = this._data, seconds, minutes, hours, years, monthsFromDays;
            if (!(milliseconds >= 0 && days >= 0 && months >= 0 || milliseconds <= 0 && days <= 0 && months <= 0)) {
                milliseconds += absCeil(monthsToDays(months) + days) * 864e5;
                days = 0;
                months = 0;
            }
            data.milliseconds = milliseconds % 1000;
            seconds = absFloor(milliseconds / 1000);
            data.seconds = seconds % 60;
            minutes = absFloor(seconds / 60);
            data.minutes = minutes % 60;
            hours = absFloor(minutes / 60);
            data.hours = hours % 24;
            days += absFloor(hours / 24);
            monthsFromDays = absFloor(daysToMonths(days));
            months += monthsFromDays;
            days -= absCeil(monthsToDays(monthsFromDays));
            years = absFloor(months / 12);
            months %= 12;
            data.days = days;
            data.months = months;
            data.years = years;
            return this;
        }
        function daysToMonths(days) {
            return days * 4800 / 146097;
        }
        function monthsToDays(months) {
            return months * 146097 / 4800;
        }
        function as(units) {
            if (!this.isValid()) {
                return NaN;
            }
            var days, months, milliseconds = this._milliseconds;
            units = normalizeUnits(units);
            if (units === 'month' || units === 'quarter' || units === 'year') {
                days = this._days + milliseconds / 864e5;
                months = this._months + daysToMonths(days);
                switch (units) {
                    case 'month':
                        return months;
                    case 'quarter':
                        return months / 3;
                    case 'year':
                        return months / 12;
                }
            } else {
                days = this._days + Math.round(monthsToDays(this._months));
                switch (units) {
                    case 'week':
                        return days / 7 + milliseconds / 6048e5;
                    case 'day':
                        return days + milliseconds / 864e5;
                    case 'hour':
                        return days * 24 + milliseconds / 36e5;
                    case 'minute':
                        return days * 1440 + milliseconds / 6e4;
                    case 'second':
                        return days * 86400 + milliseconds / 1000;
                    case 'millisecond':
                        return Math.floor(days * 864e5) + milliseconds;
                    default:
                        throw new Error('Unknown unit ' + units);
                }
            }
        }
        function makeAs(alias) {
            return function () {
                return this.as(alias);
            };
        }
        var asMilliseconds = makeAs('ms'), asSeconds = makeAs('s'), asMinutes = makeAs('m'), asHours = makeAs('h'), asDays = makeAs('d'), asWeeks = makeAs('w'), asMonths = makeAs('M'), asQuarters = makeAs('Q'), asYears = makeAs('y'), valueOf$1 = asMilliseconds;
        function clone$1() {
            return createDuration(this);
        }
        function get$2(units) {
            units = normalizeUnits(units);
            return this.isValid() ? this[units + 's']() : NaN;
        }
        function makeGetter(name) {
            return function () {
                return this.isValid() ? this._data[name] : NaN;
            };
        }
        var milliseconds = makeGetter('milliseconds'), seconds = makeGetter('seconds'), minutes = makeGetter('minutes'), hours = makeGetter('hours'), days = makeGetter('days'), months = makeGetter('months'), years = makeGetter('years');
        function weeks() {
            return absFloor(this.days() / 7);
        }
        var round = Math.round, thresholds = {
            ss: 44,
            s: 45,
            m: 45,
            h: 22,
            d: 26,
            w: null,
            M: 11
        };
        function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {
            return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);
        }
        function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {
            var duration = createDuration(posNegDuration).abs(), seconds = round(duration.as('s')), minutes = round(duration.as('m')), hours = round(duration.as('h')), days = round(duration.as('d')), months = round(duration.as('M')), weeks = round(duration.as('w')), years = round(duration.as('y')), a = seconds <= thresholds.ss && ['s', seconds] || seconds < thresholds.s && ['ss', seconds] || minutes <= 1 && ['m'] || minutes < thresholds.m && ['mm', minutes] || hours <= 1 && ['h'] || hours < thresholds.h && ['hh', hours] || days <= 1 && ['d'] || days < thresholds.d && ['dd', days];
            if (thresholds.w != null) {
                a = a || weeks <= 1 && ['w'] || weeks < thresholds.w && ['ww', weeks];
            }
            a = a || months <= 1 && ['M'] || months < thresholds.M && ['MM', months] || years <= 1 && ['y'] || ['yy', years];
            a[2] = withoutSuffix;
            a[3] = +posNegDuration > 0;
            a[4] = locale;
            return substituteTimeAgo.apply(null, a);
        }
        function getSetRelativeTimeRounding(roundingFunction) {
            if (roundingFunction === undefined) {
                return round;
            }
            if (typeof roundingFunction === 'function') {
                round = roundingFunction;
                return true;
            }
            return false;
        }
        function getSetRelativeTimeThreshold(threshold, limit) {
            if (thresholds[threshold] === undefined) {
                return false;
            }
            if (limit === undefined) {
                return thresholds[threshold];
            }
            thresholds[threshold] = limit;
            if (threshold === 's') {
                thresholds.ss = limit - 1;
            }
            return true;
        }
        function humanize(argWithSuffix, argThresholds) {
            if (!this.isValid()) {
                return this.localeData().invalidDate();
            }
            var withSuffix = false, th = thresholds, locale, output;
            if (typeof argWithSuffix === 'object') {
                argThresholds = argWithSuffix;
                argWithSuffix = false;
            }
            if (typeof argWithSuffix === 'boolean') {
                withSuffix = argWithSuffix;
            }
            if (typeof argThresholds === 'object') {
                th = Object.assign({}, thresholds, argThresholds);
                if (argThresholds.s != null && argThresholds.ss == null) {
                    th.ss = argThresholds.s - 1;
                }
            }
            locale = this.localeData();
            output = relativeTime$1(this, !withSuffix, th, locale);
            if (withSuffix) {
                output = locale.pastFuture(+this, output);
            }
            return locale.postformat(output);
        }
        var abs$1 = Math.abs;
        function sign(x) {
            return (x > 0) - (x < 0) || +x;
        }
        function toISOString$1() {
            if (!this.isValid()) {
                return this.localeData().invalidDate();
            }
            var seconds = abs$1(this._milliseconds) / 1000, days = abs$1(this._days), months = abs$1(this._months), minutes, hours, years, s, total = this.asSeconds(), totalSign, ymSign, daysSign, hmsSign;
            if (!total) {
                return 'P0D';
            }
            minutes = absFloor(seconds / 60);
            hours = absFloor(minutes / 60);
            seconds %= 60;
            minutes %= 60;
            years = absFloor(months / 12);
            months %= 12;
            s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : '';
            totalSign = total < 0 ? '-' : '';
            ymSign = sign(this._months) !== sign(total) ? '-' : '';
            daysSign = sign(this._days) !== sign(total) ? '-' : '';
            hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';
            return totalSign + 'P' + (years ? ymSign + years + 'Y' : '') + (months ? ymSign + months + 'M' : '') + (days ? daysSign + days + 'D' : '') + (hours || minutes || seconds ? 'T' : '') + (hours ? hmsSign + hours + 'H' : '') + (minutes ? hmsSign + minutes + 'M' : '') + (seconds ? hmsSign + s + 'S' : '');
        }
        var proto$2 = Duration.prototype;
        proto$2.isValid = isValid$1;
        proto$2.abs = abs;
        proto$2.add = add$1;
        proto$2.subtract = subtract$1;
        proto$2.as = as;
        proto$2.asMilliseconds = asMilliseconds;
        proto$2.asSeconds = asSeconds;
        proto$2.asMinutes = asMinutes;
        proto$2.asHours = asHours;
        proto$2.asDays = asDays;
        proto$2.asWeeks = asWeeks;
        proto$2.asMonths = asMonths;
        proto$2.asQuarters = asQuarters;
        proto$2.asYears = asYears;
        proto$2.valueOf = valueOf$1;
        proto$2._bubble = bubble;
        proto$2.clone = clone$1;
        proto$2.get = get$2;
        proto$2.milliseconds = milliseconds;
        proto$2.seconds = seconds;
        proto$2.minutes = minutes;
        proto$2.hours = hours;
        proto$2.days = days;
        proto$2.weeks = weeks;
        proto$2.months = months;
        proto$2.years = years;
        proto$2.humanize = humanize;
        proto$2.toISOString = toISOString$1;
        proto$2.toString = toISOString$1;
        proto$2.toJSON = toISOString$1;
        proto$2.locale = locale;
        proto$2.localeData = localeData;
        proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);
        proto$2.lang = lang;
        addFormatToken('X', 0, 0, 'unix');
        addFormatToken('x', 0, 0, 'valueOf');
        addRegexToken('x', matchSigned);
        addRegexToken('X', matchTimestamp);
        addParseToken('X', function (input, array, config) {
            config._d = new Date(parseFloat(input) * 1000);
        });
        addParseToken('x', function (input, array, config) {
            config._d = new Date(toInt(input));
        });
        hooks.version = '2.30.1';
        setHookCallback(createLocal);
        hooks.fn = proto;
        hooks.min = min;
        hooks.max = max;
        hooks.now = now;
        hooks.utc = createUTC;
        hooks.unix = createUnix;
        hooks.months = listMonths;
        hooks.isDate = isDate;
        hooks.locale = getSetGlobalLocale;
        hooks.invalid = createInvalid;
        hooks.duration = createDuration;
        hooks.isMoment = isMoment;
        hooks.weekdays = listWeekdays;
        hooks.parseZone = createInZone;
        hooks.localeData = getLocale;
        hooks.isDuration = isDuration;
        hooks.monthsShort = listMonthsShort;
        hooks.weekdaysMin = listWeekdaysMin;
        hooks.defineLocale = defineLocale;
        hooks.updateLocale = updateLocale;
        hooks.locales = listLocales;
        hooks.weekdaysShort = listWeekdaysShort;
        hooks.normalizeUnits = normalizeUnits;
        hooks.relativeTimeRounding = getSetRelativeTimeRounding;
        hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;
        hooks.calendarFormat = getCalendarFormat;
        hooks.prototype = proto;
        hooks.HTML5_FMT = {
            DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm',
            DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss',
            DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS',
            DATE: 'YYYY-MM-DD',
            TIME: 'HH:mm',
            TIME_SECONDS: 'HH:mm:ss',
            TIME_MS: 'HH:mm:ss.SSS',
            WEEK: 'GGGG-[W]WW',
            MONTH: 'YYYY-MM'
        };
        return hooks;
    });
})(moment$1);
var momentExports = moment$1.exports;
var moment = getDefaultExportFromCjs(momentExports);

var script$w = {
    props: ['record', 'value', 'parentDisabled'],
    data() {
        return {};
    },
    computed: {
        date() {
            if (!this.value || this.record.range && this.value.length === 0) {
                return undefined;
            } else if (this.record.range) {
                return this.value.map(item => moment(item, this.record.format));
            } else {
                if (this.value === '${currentDate}') {
                    var date = moment(new Date()).format(this.record.format);
                    this.$emit('change', date);
                    this.$emit('input', date);
                    return date;
                } else {
                    return moment(this.value, this.record.format);
                }
            }
        }
    },
    methods: {
        handleSelectChange(val) {
            let date;
            if (!val || this.record.range && val.length === 0) {
                date = '';
            } else if (this.record.range) {
                date = val.map(item => item.format(this.record.format));
            } else {
                date = val.format(this.record.format);
            }
            this.$emit('change', date);
            this.$emit('input', date);
        }
    }
};

/* script */ var __vue_script__$w = script$w;

/* template */
var __vue_render__$v = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _vm.record.type === "date" &&
    _vm.record.format === "YYYY-MM" &&
    _vm.record.range === false
    ? _c("a-month-picker", {
        attrs: {
          disabled: _vm.record.disabled || _vm.parentDisabled,
          allowClear: _vm.record.clearable,
          placeholder: _vm.record.placeholder,
          format: _vm.record.format,
          value: _vm.date
        },
        on: { change: _vm.handleSelectChange }
      })
    : _vm.record.type === "date" && !_vm.record.range
    ? _c("a-date-picker", {
        attrs: {
          disabled: _vm.record.disabled || _vm.parentDisabled,
          "show-time": _vm.record.showTime,
          allowClear: _vm.record.clearable,
          placeholder: _vm.record.placeholder,
          format: _vm.record.format,
          value: _vm.date
        },
        on: { change: _vm.handleSelectChange }
      })
    : _vm.record.type === "date" && _vm.record.range === true
    ? _c("a-range-picker", {
        attrs: {
          "show-time": _vm.record.showTime,
          disabled: _vm.record.disabled || _vm.parentDisabled,
          allowClear: _vm.record.clearable,
          placeholder: _vm.record.rangePlaceholder,
          format: _vm.record.format,
          value: _vm.date
        },
        on: { change: _vm.handleSelectChange }
      })
    : _vm._e()
};
var __vue_staticRenderFns__$v = [];
__vue_render__$v._withStripped = true;

  /* style */
  var __vue_inject_styles__$w = undefined;
  /* scoped */
  var __vue_scope_id__$w = undefined;
  /* module identifier */
  var __vue_module_identifier__$w = undefined;
  /* functional template */
  var __vue_is_functional_template__$w = false;
  /* style inject */
  
  /* style inject SSR */
  
  /* style inject shadow dom */
  

  
  var __vue_component__$w = /*#__PURE__*/normalizeComponent(
    { render: __vue_render__$v, staticRenderFns: __vue_staticRenderFns__$v },
    __vue_inject_styles__$w,
    __vue_script__$w,
    __vue_scope_id__$w,
    __vue_is_functional_template__$w,
    __vue_module_identifier__$w,
    false,
    undefined,
    undefined,
    undefined
  );

var script$v = {
    name: 'FormDateSelect',
    components: {
        KDatePicker: __vue_component__$w
    },
    mixins: [FormComponentMixin],
    props: {
        renderScene: {
            type: String,
            default: ''
        }
    },
    data() {
        return {};
    },
    mounted() {},
    methods: {}
};

/* script */ var __vue_script__$v = script$v;
/* template */
var __vue_render__$u = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c(
    "div",
    { staticClass: "form-component form-date-select" },
    [
      _c(
        "proxy-form-item",
        {
          attrs: {
            label: _vm.componentConfig.label,
            promptMessage: _vm.componentConfig.promptMessageContent,
            rules: _vm.componentConfig.rules
          }
        },
        [
          _vm.renderScene === "edit"
            ? _c("k-date-picker", {
                attrs: { record: _vm.componentConfig },
                on: {
                  change: function($event) {
                    return _vm.handleChange($event, _vm.componentConfig.model)
                  }
                },
                model: {
                  value: _vm.formValue,
                  callback: function($$v) {
                    _vm.formValue = $$v;
                  },
                  expression: "formValue"
                }
              })
            : _vm.renderScene === "read"
            ? _c("k-date-picker", {
                attrs: {
                  value: _vm.formValue,
                  record: _vm.componentConfig,
                  disabled: true
                }
              })
            : _vm._e(),
          _vm._v(" "),
          _vm.renderScene === "ide"
            ? _c("k-date-picker", {
                attrs: {
                  value: _vm.componentConfig.defaultValue,
                  record: _vm.componentConfig
                }
              })
            : _vm._e()
        ],
        1
      )
    ],
    1
  )
};
var __vue_staticRenderFns__$u = [];
__vue_render__$u._withStripped = true;

  /* style */
  var __vue_inject_styles__$v = undefined;
  /* scoped */
  var __vue_scope_id__$v = undefined;
  /* module identifier */
  var __vue_module_identifier__$v = undefined;
  /* functional template */
  var __vue_is_functional_template__$v = false;
  /* style inject */
  
  /* style inject SSR */
  
  /* style inject shadow dom */
  

  
  var __vue_component__$v = /*#__PURE__*/normalizeComponent(
    { render: __vue_render__$u, staticRenderFns: __vue_staticRenderFns__$u },
    __vue_inject_styles__$v,
    __vue_script__$v,
    __vue_scope_id__$v,
    __vue_is_functional_template__$v,
    __vue_module_identifier__$v,
    false,
    undefined,
    undefined,
    undefined
  );

__vue_component__$v.install = function (Vue) {
    Vue.component(__vue_component__$v.name, __vue_component__$v);
};

var script$u = {
    name: 'FormDividerBox',
    mixins: [FormComponentMixin],
    props: {
        renderScene: {
            type: String,
            default: ''
        },
        dynamicData: {
            type: Object,
            default: () => ({})
        }
    },
    data() {
        return {};
    },
    mounted() {},
    methods: {}
};

/* script */ var __vue_script__$u = script$u;
/* template */
var __vue_render__$t = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c(
    "div",
    { staticClass: "form-component form-text-input" },
    [
      _c(
        "a-divider",
        { attrs: { orientation: _vm.componentConfig.orientation } },
        [
          _vm._v("\n    " + _vm._s(_vm.componentConfig.label) + "\n    "),
          _vm.componentConfig.promptMessageContent
            ? _c(
                "a-tooltip",
                { attrs: { placement: "top" } },
                [
                  _c("template", { slot: "title" }, [
                    _vm._v(
                      "\n        " +
                        _vm._s(_vm.componentConfig.promptMessageContent) +
                        "\n      "
                    )
                  ]),
                  _vm._v(" "),
                  _c("a-icon", {
                    attrs: { type: "question-circle", theme: "filled" }
                  })
                ],
                2
              )
            : _vm._e()
        ],
        1
      )
    ],
    1
  )
};
var __vue_staticRenderFns__$t = [];
__vue_render__$t._withStripped = true;

  /* style */
  var __vue_inject_styles__$u = undefined;
  /* scoped */
  var __vue_scope_id__$u = undefined;
  /* module identifier */
  var __vue_module_identifier__$u = undefined;
  /* functional template */
  var __vue_is_functional_template__$u = false;
  /* style inject */
  
  /* style inject SSR */
  
  /* style inject shadow dom */
  

  
  var __vue_component__$u = /*#__PURE__*/normalizeComponent(
    { render: __vue_render__$t, staticRenderFns: __vue_staticRenderFns__$t },
    __vue_inject_styles__$u,
    __vue_script__$u,
    __vue_scope_id__$u,
    __vue_is_functional_template__$u,
    __vue_module_identifier__$u,
    false,
    undefined,
    undefined,
    undefined
  );

__vue_component__$u.install = function (Vue) {
    Vue.component(__vue_component__$u.name, __vue_component__$u);
};

var script$t = {
    name: 'FormDocumentNumber',
    components: {},
    mixins: [FormComponentMixin],
    data() {
        return {};
    },
    computed: {},
    mounted() {},
    methods: {}
};

/* script */ var __vue_script__$t = script$t;
/* template */
var __vue_render__$s = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c(
    "proxy-form-item",
    {
      staticClass: "form-document-number form-component",
      attrs: {
        componentConfig: _vm.componentConfig,
        label: _vm.componentConfig.label,
        promptMessage: _vm.componentConfig.promptMessageContent,
        rules: _vm.componentConfig.rules
      }
    },
    [
      _c("a-input", {
        attrs: { placeholder: _vm.$t("提交后自动生成"), disabled: true },
        model: {
          value: _vm.formValue,
          callback: function($$v) {
            _vm.formValue = $$v;
          },
          expression: "formValue"
        }
      })
    ],
    1
  )
};
var __vue_staticRenderFns__$s = [];
__vue_render__$s._withStripped = true;

  /* style */
  var __vue_inject_styles__$t = undefined;
  /* scoped */
  var __vue_scope_id__$t = undefined;
  /* module identifier */
  var __vue_module_identifier__$t = undefined;
  /* functional template */
  var __vue_is_functional_template__$t = false;
  /* style inject */
  
  /* style inject SSR */
  
  /* style inject shadow dom */
  

  
  var __vue_component__$t = /*#__PURE__*/normalizeComponent(
    { render: __vue_render__$s, staticRenderFns: __vue_staticRenderFns__$s },
    __vue_inject_styles__$t,
    __vue_script__$t,
    __vue_scope_id__$t,
    __vue_is_functional_template__$t,
    __vue_module_identifier__$t,
    false,
    undefined,
    undefined,
    undefined
  );

__vue_component__$t.install = function (Vue) {
    Vue.component(__vue_component__$t.name, __vue_component__$t);
};

var script$s = {
    name: 'FormNumberInput',
    mixins: [FormComponentMixin],
    props: {
        renderScene: {
            type: String,
            default: ''
        }
    },
    data() {
        return {};
    },
    computed: {
        minNumber() {
            return this.componentConfig.min || this.componentConfig.min === 0 ? this.componentConfig.min : -Infinity;
        },
        maxNumber() {
            return this.componentConfig.max || this.componentConfig.max === 0 ? this.componentConfig.max : Infinity;
        },
        precisionNumber() {
            return this.componentConfig.precision > 50 || !this.componentConfig.precision && this.componentConfig.precision !== 0 ? null : this.componentConfig.precision;
        }
    },
    mounted() {},
    methods: {}
};

/* script */ var __vue_script__$s = script$s;
/* template */
var __vue_render__$r = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c(
    "div",
    { staticClass: "form-component form-number-input" },
    [
      _c(
        "proxy-form-item",
        {
          attrs: {
            componentConfig: _vm.componentConfig,
            label: _vm.componentConfig.label,
            promptMessage: _vm.componentConfig.promptMessageContent,
            rules: _vm.componentConfig.rules
          }
        },
        [
          _vm.renderScene === "edit"
            ? _c("a-input-number", {
                attrs: {
                  min: _vm.minNumber,
                  max: _vm.maxNumber,
                  disabled: _vm.componentConfig.disabled,
                  step: _vm.componentConfig.step,
                  defaultValue: _vm.componentConfig.defaultValue || 0,
                  precision: _vm.precisionNumber,
                  placeholder: _vm.componentConfig.placeholder
                },
                on: {
                  change: function($event) {
                    return _vm.handleChange($event, _vm.componentConfig.model)
                  }
                },
                model: {
                  value: _vm.formValue,
                  callback: function($$v) {
                    _vm.formValue = $$v;
                  },
                  expression: "formValue"
                }
              })
            : _vm.renderScene === "read"
            ? _c("a-input-number", {
                attrs: {
                  disabled: true,
                  step: _vm.componentConfig.step,
                  placeholder: _vm.componentConfig.placeholder
                },
                model: {
                  value: _vm.formValue,
                  callback: function($$v) {
                    _vm.formValue = $$v;
                  },
                  expression: "formValue"
                }
              })
            : _vm.renderScene === "ide"
            ? _c("a-input-number", {
                attrs: {
                  value: _vm.componentConfig.defaultValue,
                  disabled: _vm.componentConfig.disabled,
                  step: _vm.componentConfig.step,
                  placeholder: _vm.componentConfig.placeholder
                },
                on: {
                  change: function($event) {
                    return _vm.handleChange($event, _vm.componentConfig.model)
                  }
                }
              })
            : _vm._e()
        ],
        1
      )
    ],
    1
  )
};
var __vue_staticRenderFns__$r = [];
__vue_render__$r._withStripped = true;

  /* style */
  var __vue_inject_styles__$s = undefined;
  /* scoped */
  var __vue_scope_id__$s = undefined;
  /* module identifier */
  var __vue_module_identifier__$s = undefined;
  /* functional template */
  var __vue_is_functional_template__$s = false;
  /* style inject */
  
  /* style inject SSR */
  
  /* style inject shadow dom */
  

  
  var __vue_component__$s = /*#__PURE__*/normalizeComponent(
    { render: __vue_render__$r, staticRenderFns: __vue_staticRenderFns__$r },
    __vue_inject_styles__$s,
    __vue_script__$s,
    __vue_scope_id__$s,
    __vue_is_functional_template__$s,
    __vue_module_identifier__$s,
    false,
    undefined,
    undefined,
    undefined
  );

__vue_component__$s.install = function (Vue) {
    Vue.component(__vue_component__$s.name, __vue_component__$s);
};

var script$r = {
    name: 'FormRadioBox',
    mixins: [FormComponentMixin, selectMixin],
    props: {
        renderScene: {
            type: String,
            default: ''
        }
    },
    data() {
        return {};
    },
    mounted() {},
    methods: {}
};

/* script */ var __vue_script__$r = script$r;
/* template */
var __vue_render__$q = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c(
    "div",
    { staticClass: "form-component form-text-input" },
    [
      _c(
        "proxy-form-item",
        {
          attrs: {
            label: _vm.componentConfig.label,
            componentConfig: _vm.componentConfig,
            promptMessage: _vm.componentConfig.promptMessageContent,
            rules: _vm.componentConfig.rules
          }
        },
        [
          _vm.renderScene === "edit"
            ? _c("a-radio-group", {
                attrs: {
                  options: _vm.formSelectOption,
                  disabled: _vm.componentConfig.disabled
                },
                on: {
                  change: function($event) {
                    return _vm.handleChange(
                      $event.target.value,
                      _vm.componentConfig.model
                    )
                  }
                },
                model: {
                  value: _vm.formValue,
                  callback: function($$v) {
                    _vm.formValue = $$v;
                  },
                  expression: "formValue"
                }
              })
            : _vm.renderScene === "read"
            ? _c("a-radio-group", {
                attrs: {
                  value: _vm.formValue,
                  options: _vm.formSelectOption,
                  disabled: true
                }
              })
            : _vm._e(),
          _vm._v(" "),
          _vm.renderScene === "ide"
            ? _c("a-radio-group", {
                attrs: {
                  value: _vm.componentConfig.defaultValue,
                  options: _vm.formSelectOption,
                  disabled:
                    _vm.componentConfig.disabled || _vm.renderScene === "read",
                  placeholder: _vm.componentConfig.placeholder
                }
              })
            : _vm._e()
        ],
        1
      )
    ],
    1
  )
};
var __vue_staticRenderFns__$q = [];
__vue_render__$q._withStripped = true;

  /* style */
  var __vue_inject_styles__$r = undefined;
  /* scoped */
  var __vue_scope_id__$r = undefined;
  /* module identifier */
  var __vue_module_identifier__$r = undefined;
  /* functional template */
  var __vue_is_functional_template__$r = false;
  /* style inject */
  
  /* style inject SSR */
  
  /* style inject shadow dom */
  

  
  var __vue_component__$r = /*#__PURE__*/normalizeComponent(
    { render: __vue_render__$q, staticRenderFns: __vue_staticRenderFns__$q },
    __vue_inject_styles__$r,
    __vue_script__$r,
    __vue_scope_id__$r,
    __vue_is_functional_template__$r,
    __vue_module_identifier__$r,
    false,
    undefined,
    undefined,
    undefined
  );

__vue_component__$r.install = function (Vue) {
    Vue.component(__vue_component__$r.name, __vue_component__$r);
};

var script$q = {
    name: 'FormRateInput',
    mixins: [FormComponentMixin],
    props: {
        renderScene: {
            type: String,
            default: ''
        }
    },
    data() {
        return {};
    },
    mounted() {},
    methods: {
        getOptions(componentConfig) {
            let staticOptions = componentConfig.options.options || [];
            return staticOptions;
        }
    }
};

/* script */ var __vue_script__$q = script$q;
/* template */
var __vue_render__$p = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c(
    "div",
    { staticClass: "form-component form-text-input" },
    [
      _c(
        "proxy-form-item",
        {
          attrs: {
            label: _vm.componentConfig.label,
            componentConfig: _vm.componentConfig,
            promptMessage: _vm.componentConfig.promptMessageContent,
            rules: _vm.componentConfig.rules
          }
        },
        [
          _c("a-rate", {
            attrs: {
              count: _vm.componentConfig.options.max,
              disabled:
                _vm.componentConfig.disabled || _vm.renderScene === "read",
              placeholder: _vm.componentConfig.placeholder,
              allowHalf: _vm.componentConfig.allowHalf
            },
            on: {
              change: function($event) {
                return _vm.handleChange($event, _vm.componentConfig.model)
              }
            },
            model: {
              value: _vm.formValue,
              callback: function($$v) {
                _vm.formValue = $$v;
              },
              expression: "formValue"
            }
          })
        ],
        1
      )
    ],
    1
  )
};
var __vue_staticRenderFns__$p = [];
__vue_render__$p._withStripped = true;

  /* style */
  var __vue_inject_styles__$q = undefined;
  /* scoped */
  var __vue_scope_id__$q = undefined;
  /* module identifier */
  var __vue_module_identifier__$q = undefined;
  /* functional template */
  var __vue_is_functional_template__$q = false;
  /* style inject */
  
  /* style inject SSR */
  
  /* style inject shadow dom */
  

  
  var __vue_component__$q = /*#__PURE__*/normalizeComponent(
    { render: __vue_render__$p, staticRenderFns: __vue_staticRenderFns__$p },
    __vue_inject_styles__$q,
    __vue_script__$q,
    __vue_scope_id__$q,
    __vue_is_functional_template__$q,
    __vue_module_identifier__$q,
    false,
    undefined,
    undefined,
    undefined
  );

__vue_component__$q.install = function (Vue) {
    Vue.component(__vue_component__$q.name, __vue_component__$q);
};

var script$p = {
    name: 'FormSliderBox',
    mixins: [FormComponentMixin],
    props: {
        renderScene: {
            type: String,
            default: ''
        }
    },
    data() {
        return {};
    },
    mounted() {},
    methods: {
        getOptions(componentConfig) {
            let staticOptions = componentConfig.options.options || [];
            return staticOptions;
        }
    }
};

/* script */ var __vue_script__$p = script$p;
/* template */
var __vue_render__$o = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c(
    "div",
    { staticClass: "form-component form-text-input" },
    [
      _c(
        "proxy-form-item",
        {
          attrs: {
            label: _vm.componentConfig.label,
            componentConfig: _vm.componentConfig,
            promptMessage: _vm.componentConfig.promptMessageContent,
            rules: _vm.componentConfig.rules
          }
        },
        [
          _c("div", { staticClass: "slider-box" }, [
            _c(
              "div",
              { staticClass: "slider" },
              [
                _c("a-slider", {
                  attrs: {
                    disabled:
                      _vm.componentConfig.disabled ||
                      _vm.renderScene === "read",
                    min: _vm.componentConfig.min,
                    max: _vm.componentConfig.max,
                    step: _vm.componentConfig.step
                  },
                  on: {
                    change: function($event) {
                      return _vm.handleChange($event, _vm.componentConfig.model)
                    }
                  },
                  model: {
                    value: _vm.formValue,
                    callback: function($$v) {
                      _vm.formValue = $$v;
                    },
                    expression: "formValue"
                  }
                })
              ],
              1
            ),
            _vm._v(" "),
            _vm.componentConfig.showInput
              ? _c(
                  "div",
                  { staticClass: "number" },
                  [
                    _c("a-input-number", {
                      staticStyle: { width: "100%" },
                      attrs: {
                        disabled:
                          _vm.componentConfig.disabled ||
                          _vm.renderScene === "read",
                        min: _vm.componentConfig.min,
                        max: _vm.componentConfig.max,
                        step: _vm.componentConfig.step
                      },
                      on: {
                        change: function($event) {
                          return _vm.handleChange(
                            $event,
                            _vm.componentConfig.model
                          )
                        }
                      },
                      model: {
                        value: _vm.formValue,
                        callback: function($$v) {
                          _vm.formValue = $$v;
                        },
                        expression: "formValue"
                      }
                    })
                  ],
                  1
                )
              : _vm._e()
          ])
        ]
      )
    ],
    1
  )
};
var __vue_staticRenderFns__$o = [];
__vue_render__$o._withStripped = true;

  /* style */
  var __vue_inject_styles__$p = undefined;
  /* scoped */
  var __vue_scope_id__$p = undefined;
  /* module identifier */
  var __vue_module_identifier__$p = undefined;
  /* functional template */
  var __vue_is_functional_template__$p = false;
  /* style inject */
  
  /* style inject SSR */
  
  /* style inject shadow dom */
  

  
  var __vue_component__$p = /*#__PURE__*/normalizeComponent(
    { render: __vue_render__$o, staticRenderFns: __vue_staticRenderFns__$o },
    __vue_inject_styles__$p,
    __vue_script__$p,
    __vue_scope_id__$p,
    __vue_is_functional_template__$p,
    __vue_module_identifier__$p,
    false,
    undefined,
    undefined,
    undefined
  );

__vue_component__$p.install = function (Vue) {
    Vue.component(__vue_component__$p.name, __vue_component__$p);
};

var script$o = {
    name: 'FormStaticText',
    mixins: [FormComponentMixin],
    props: {
        renderScene: {
            type: String,
            default: ''
        }
    },
    data() {
        return {};
    },
    computed: {
        optionsPaddingLeft() {
            var paddingLeft = this.componentConfig.paddingLeft || '';
            var numberLeft = parseInt(paddingLeft) || 0;
            if (paddingLeft.charAt(paddingLeft.length - 1) === '%') {
                return numberLeft + '%';
            }
            return numberLeft + 'px';
        },
        renderStaticText() {
            if (this.componentConfig.countStatistics) {
                return this.componentConfig.countNumber || 0;
            }
            return this.componentConfig.label;
        }
    },
    mounted() {},
    methods: {}
};

/* script */ var __vue_script__$o = script$o;
/* template */
var __vue_render__$n = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c(
    "div",
    {
      staticClass: "form-component form-static-text",
      style: {
        fontWeight: _vm.componentConfig.textWeight ? "bold" : "normal"
      }
    },
    [_vm._v("\n  " + _vm._s(_vm.renderStaticText) + "\n")]
  )
};
var __vue_staticRenderFns__$n = [];
__vue_render__$n._withStripped = true;

  /* style */
  var __vue_inject_styles__$o = undefined;
  /* scoped */
  var __vue_scope_id__$o = undefined;
  /* module identifier */
  var __vue_module_identifier__$o = undefined;
  /* functional template */
  var __vue_is_functional_template__$o = false;
  /* style inject */
  
  /* style inject SSR */
  
  /* style inject shadow dom */
  

  
  var __vue_component__$o = /*#__PURE__*/normalizeComponent(
    { render: __vue_render__$n, staticRenderFns: __vue_staticRenderFns__$n },
    __vue_inject_styles__$o,
    __vue_script__$o,
    __vue_scope_id__$o,
    __vue_is_functional_template__$o,
    __vue_module_identifier__$o,
    false,
    undefined,
    undefined,
    undefined
  );

__vue_component__$o.install = function (Vue) {
    Vue.component(__vue_component__$o.name, __vue_component__$o);
};

var script$n = {
    name: 'YlySwitch',
    props: {
        value: {
            type: Boolean | String | Number,
            default: false
        },
        disabled: {
            type: Boolean,
            default: false
        },
        componentConfig: {
            type: Object,
            default() {
                return {};
            }
        }
    },
    computed: {
        switchChecked() {
            if (typeof this.value === 'boolean') return this.value;
            if (typeof this.value === 'string') {
                if (this.value === 'true') return true;
                if (this.value === 'false') return false;
                if (!isNaN(Number(this.value))) {
                    return Number(this.value) === 1;
                }
                return (/^[Tt]rue$/).test(this.value);
            }
            if (typeof this.value === 'number') return this.value === 1;
            return false;
        }
    },
    mounted() {},
    methods: {
        handleChange(checked) {
            this.$emit("change", checked ? 1 : 0, this.componentConfig.model);
        }
    }
};

/* script */ var __vue_script__$n = script$n;

/* template */
var __vue_render__$m = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c(
    "div",
    [
      _c(
        "a-switch",
        _vm._b(
          {
            attrs: { disabled: _vm.disabled, checked: _vm.switchChecked },
            on: {
              change: function($event) {
                return _vm.handleChange($event)
              }
            }
          },
          "a-switch",
          _vm.$attrs,
          false
        )
      )
    ],
    1
  )
};
var __vue_staticRenderFns__$m = [];
__vue_render__$m._withStripped = true;

  /* style */
  var __vue_inject_styles__$n = undefined;
  /* scoped */
  var __vue_scope_id__$n = undefined;
  /* module identifier */
  var __vue_module_identifier__$n = undefined;
  /* functional template */
  var __vue_is_functional_template__$n = false;
  /* style inject */
  
  /* style inject SSR */
  
  /* style inject shadow dom */
  

  
  var __vue_component__$n = /*#__PURE__*/normalizeComponent(
    { render: __vue_render__$m, staticRenderFns: __vue_staticRenderFns__$m },
    __vue_inject_styles__$n,
    __vue_script__$n,
    __vue_scope_id__$n,
    __vue_is_functional_template__$n,
    __vue_module_identifier__$n,
    false,
    undefined,
    undefined,
    undefined
  );

var script$m = {
    name: 'FormSwitchInput',
    mixins: [FormComponentMixin],
    components: {
        YlySwitch: __vue_component__$n
    },
    props: {
        renderScene: {
            type: String,
            default: ''
        }
    },
    data() {
        return {};
    },
    mounted() {},
    methods: {}
};

/* script */ var __vue_script__$m = script$m;
/* template */
var __vue_render__$l = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c(
    "div",
    { staticClass: "form-component form-text-input" },
    [
      _c(
        "proxy-form-item",
        {
          attrs: {
            componentConfig: _vm.componentConfig,
            label: _vm.componentConfig.label,
            rules: _vm.componentConfig.rules,
            promptMessage: _vm.componentConfig.promptMessageContent
          }
        },
        [
          _c("yly-switch", {
            attrs: {
              componentConfig: _vm.componentConfig,
              disabled:
                _vm.renderScene === "read" || _vm.componentConfig.disabled
            },
            on: { change: _vm.handleChange },
            model: {
              value: _vm.formValue,
              callback: function($$v) {
                _vm.formValue = $$v;
              },
              expression: "formValue"
            }
          })
        ],
        1
      )
    ],
    1
  )
};
var __vue_staticRenderFns__$l = [];
__vue_render__$l._withStripped = true;

  /* style */
  var __vue_inject_styles__$m = undefined;
  /* scoped */
  var __vue_scope_id__$m = undefined;
  /* module identifier */
  var __vue_module_identifier__$m = undefined;
  /* functional template */
  var __vue_is_functional_template__$m = false;
  /* style inject */
  
  /* style inject SSR */
  
  /* style inject shadow dom */
  

  
  var __vue_component__$m = /*#__PURE__*/normalizeComponent(
    { render: __vue_render__$l, staticRenderFns: __vue_staticRenderFns__$l },
    __vue_inject_styles__$m,
    __vue_script__$m,
    __vue_scope_id__$m,
    __vue_is_functional_template__$m,
    __vue_module_identifier__$m,
    false,
    undefined,
    undefined,
    undefined
  );

__vue_component__$m.install = function (Vue) {
    Vue.component(__vue_component__$m.name, __vue_component__$m);
};

var script$l = {
    name: 'FormTable',
    mixins: [FormComponentMixin],
    data() {
        return {};
    },
    mounted() {},
    methods: {}
};

/* script */ var __vue_script__$l = script$l;
/* template */
var __vue_render__$k = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c("div", { staticClass: "form-table" }, [_c("g-vxe-table")], 1)
};
var __vue_staticRenderFns__$k = [];
__vue_render__$k._withStripped = true;

  /* style */
  var __vue_inject_styles__$l = undefined;
  /* scoped */
  var __vue_scope_id__$l = undefined;
  /* module identifier */
  var __vue_module_identifier__$l = undefined;
  /* functional template */
  var __vue_is_functional_template__$l = false;
  /* style inject */
  
  /* style inject SSR */
  
  /* style inject shadow dom */
  

  
  var __vue_component__$l = /*#__PURE__*/normalizeComponent(
    { render: __vue_render__$k, staticRenderFns: __vue_staticRenderFns__$k },
    __vue_inject_styles__$l,
    __vue_script__$l,
    __vue_scope_id__$l,
    __vue_is_functional_template__$l,
    __vue_module_identifier__$l,
    false,
    undefined,
    undefined,
    undefined
  );

__vue_component__$l.install = function (Vue) {
    Vue.component(__vue_component__$l.name, __vue_component__$l);
};

var script$k = {
    name: 'FormTextField',
    mixins: [FormComponentMixin],
    props: {},
    data() {
        return {};
    },
    mounted() {},
    methods: {}
};

/* script */ var __vue_script__$k = script$k;
/* template */
var __vue_render__$j = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c("div", { staticClass: "form-component form-text-field" }, [
    _c("span", [_vm._v(_vm._s(_vm.componentConfig.label))])
  ])
};
var __vue_staticRenderFns__$j = [];
__vue_render__$j._withStripped = true;

  /* style */
  var __vue_inject_styles__$k = undefined;
  /* scoped */
  var __vue_scope_id__$k = undefined;
  /* module identifier */
  var __vue_module_identifier__$k = undefined;
  /* functional template */
  var __vue_is_functional_template__$k = false;
  /* style inject */
  
  /* style inject SSR */
  
  /* style inject shadow dom */
  

  
  var __vue_component__$k = /*#__PURE__*/normalizeComponent(
    { render: __vue_render__$j, staticRenderFns: __vue_staticRenderFns__$j },
    __vue_inject_styles__$k,
    __vue_script__$k,
    __vue_scope_id__$k,
    __vue_is_functional_template__$k,
    __vue_module_identifier__$k,
    false,
    undefined,
    undefined,
    undefined
  );

__vue_component__$k.install = function (Vue) {
    Vue.component(__vue_component__$k.name, __vue_component__$k);
};

var script$j = {
    name: 'FormTextInput',
    mixins: [FormComponentMixin],
    props: {
        renderScene: {
            type: String,
            default: ''
        }
    },
    data() {
        return {};
    },
    mounted() {},
    methods: {}
};

/* script */ var __vue_script__$j = script$j;
/* template */
var __vue_render__$i = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c(
    "div",
    { staticClass: "form-component form-text-input" },
    [
      _c(
        "proxy-form-item",
        {
          attrs: {
            componentConfig: _vm.componentConfig,
            label: _vm.componentConfig.label,
            promptMessage: _vm.componentConfig.promptMessageContent,
            rules: _vm.componentConfig.rules
          }
        },
        [
          _vm.renderScene === "edit"
            ? _c("a-input", {
                attrs: {
                  placeholder: _vm.componentConfig.placeholder,
                  disabled: _vm.componentConfig.disabled,
                  allowClear: _vm.componentConfig.clearable,
                  maxLength: _vm.componentConfig.maxLength
                },
                on: {
                  change: function(e) {
                    return _vm.handleChange(
                      e.target.value,
                      _vm.componentConfig.model
                    )
                  }
                },
                model: {
                  value: _vm.formValue,
                  callback: function($$v) {
                    _vm.formValue = $$v;
                  },
                  expression: "formValue"
                }
              })
            : _vm._e(),
          _vm._v(" "),
          _vm.renderScene === "read"
            ? _c("a-input", {
                attrs: {
                  value: _vm.formValue,
                  disabled: true,
                  allowClear: _vm.componentConfig.clearable,
                  maxLength: _vm.componentConfig.maxLength
                },
                on: {
                  change: function(e) {
                    return _vm.handleChange(
                      e.target.value,
                      _vm.componentConfig.model
                    )
                  }
                }
              })
            : _vm._e(),
          _vm._v(" "),
          _vm.renderScene === "ide"
            ? _c("a-input", {
                attrs: {
                  value: _vm.componentConfig.defaultValue,
                  readonly: true,
                  disabled: _vm.componentConfig.disabled,
                  placeholder: _vm.componentConfig.placeholder,
                  maxLength: _vm.componentConfig.maxLength
                },
                on: {
                  change: function(e) {
                    return _vm.handleChange(
                      e.target.value,
                      _vm.componentConfig.model
                    )
                  }
                }
              })
            : _vm._e()
        ],
        1
      )
    ],
    1
  )
};
var __vue_staticRenderFns__$i = [];
__vue_render__$i._withStripped = true;

  /* style */
  var __vue_inject_styles__$j = undefined;
  /* scoped */
  var __vue_scope_id__$j = undefined;
  /* module identifier */
  var __vue_module_identifier__$j = undefined;
  /* functional template */
  var __vue_is_functional_template__$j = false;
  /* style inject */
  
  /* style inject SSR */
  
  /* style inject shadow dom */
  

  
  var __vue_component__$j = /*#__PURE__*/normalizeComponent(
    { render: __vue_render__$i, staticRenderFns: __vue_staticRenderFns__$i },
    __vue_inject_styles__$j,
    __vue_script__$j,
    __vue_scope_id__$j,
    __vue_is_functional_template__$j,
    __vue_module_identifier__$j,
    false,
    undefined,
    undefined,
    undefined
  );

__vue_component__$j.install = function (Vue) {
    Vue.component(__vue_component__$j.name, __vue_component__$j);
};

var script$i = {
    name: 'FormTextareaInput',
    mixins: [FormComponentMixin],
    props: {
        renderScene: {
            type: String,
            default: ''
        }
    },
    data() {
        return {};
    },
    computed: {
        autoSize() {
            return {
                minRows: this.componentConfig.minRows,
                maxRows: this.componentConfig.maxRows
            };
        }
    },
    mounted() {},
    methods: {}
};

/* script */ var __vue_script__$i = script$i;
/* template */
var __vue_render__$h = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c(
    "div",
    { staticClass: "form-component form-text-input" },
    [
      _c(
        "proxy-form-item",
        {
          attrs: {
            label: _vm.componentConfig.label,
            componentConfig: _vm.componentConfig,
            rules: _vm.componentConfig.rules,
            promptMessage: _vm.componentConfig.promptMessageContent
          }
        },
        [
          _vm.renderScene === "edit"
            ? _c("a-textarea", {
                attrs: {
                  autoSize: _vm.autoSize,
                  rows: 4,
                  placeholder: _vm.componentConfig.placeholder,
                  disabled: _vm.componentConfig.disabled,
                  allowClear: _vm.componentConfig.clearable,
                  maxLength: _vm.componentConfig.maxLength
                },
                on: {
                  change: function(e) {
                    return _vm.handleChange(
                      e.target.value,
                      _vm.componentConfig.model
                    )
                  }
                },
                model: {
                  value: _vm.formValue,
                  callback: function($$v) {
                    _vm.formValue = $$v;
                  },
                  expression: "formValue"
                }
              })
            : _vm._e(),
          _vm._v(" "),
          _vm.renderScene === "read"
            ? _c("a-textarea", {
                attrs: {
                  autoSize: _vm.autoSize,
                  disabled: true,
                  allowClear: _vm.componentConfig.clearable,
                  maxLength: _vm.componentConfig.maxLength
                },
                model: {
                  value: _vm.formValue,
                  callback: function($$v) {
                    _vm.formValue = $$v;
                  },
                  expression: "formValue"
                }
              })
            : _vm._e(),
          _vm._v(" "),
          _vm.renderScene === "ide"
            ? _c("a-textarea", {
                attrs: {
                  value: _vm.componentConfig.defaultValue,
                  placeholder: _vm.componentConfig.placeholder,
                  disabled: _vm.componentConfig.disabled,
                  readonly: true,
                  autoSize: _vm.autoSize,
                  maxLength: _vm.componentConfig.maxLength
                }
              })
            : _vm._e()
        ],
        1
      )
    ],
    1
  )
};
var __vue_staticRenderFns__$h = [];
__vue_render__$h._withStripped = true;

  /* style */
  var __vue_inject_styles__$i = undefined;
  /* scoped */
  var __vue_scope_id__$i = undefined;
  /* module identifier */
  var __vue_module_identifier__$i = undefined;
  /* functional template */
  var __vue_is_functional_template__$i = false;
  /* style inject */
  
  /* style inject SSR */
  
  /* style inject shadow dom */
  

  
  var __vue_component__$i = /*#__PURE__*/normalizeComponent(
    { render: __vue_render__$h, staticRenderFns: __vue_staticRenderFns__$h },
    __vue_inject_styles__$i,
    __vue_script__$i,
    __vue_scope_id__$i,
    __vue_is_functional_template__$i,
    __vue_module_identifier__$i,
    false,
    undefined,
    undefined,
    undefined
  );

__vue_component__$i.install = function (Vue) {
    Vue.component(__vue_component__$i.name, __vue_component__$i);
};

var script$h = {
    name: 'FormTreeSelect',
    mixins: [FormComponentMixin],
    props: {
        renderScene: {
            type: String,
            default: ''
        },
        dynamicData: {
            type: Object,
            default: () => ({})
        }
    },
    data() {
        return {};
    },
    mounted() {},
    methods: {
        getOptions(componentConfig) {
            let staticOptions = componentConfig.options || [];
            return staticOptions;
        }
    }
};

/* script */ var __vue_script__$h = script$h;
/* template */
var __vue_render__$g = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c(
    "div",
    { staticClass: "form-component form-text-input" },
    [
      _c(
        "proxy-form-item",
        {
          attrs: {
            label: _vm.componentConfig.label,
            componentConfig: _vm.componentConfig,
            promptMessage: _vm.componentConfig.promptMessageContent,
            rules: _vm.componentConfig.rules
          }
        },
        [
          _c("a-tree-select", {
            style: "width:" + _vm.componentConfig.width,
            attrs: {
              placeholder: _vm.componentConfig.placeholder,
              multiple: _vm.componentConfig.multiple,
              showSearch: _vm.componentConfig.showSearch,
              treeCheckable: _vm.componentConfig.treeCheckable,
              treeData: !_vm.componentConfig.dynamic
                ? _vm.componentConfig.options
                : _vm.dynamicData[_vm.componentConfig.dynamicKey]
                ? _vm.dynamicData[_vm.componentConfig.dynamicKey]
                : [],
              disabled:
                _vm.componentConfig.disabled || _vm.renderScene === "read",
              allowClear: _vm.componentConfig.clearable
            },
            on: {
              change: function($event) {
                return _vm.handleChange($event, _vm.componentConfig.model)
              }
            },
            model: {
              value: _vm.formValue,
              callback: function($$v) {
                _vm.formValue = $$v;
              },
              expression: "formValue"
            }
          })
        ],
        1
      )
    ],
    1
  )
};
var __vue_staticRenderFns__$g = [];
__vue_render__$g._withStripped = true;

  /* style */
  var __vue_inject_styles__$h = undefined;
  /* scoped */
  var __vue_scope_id__$h = undefined;
  /* module identifier */
  var __vue_module_identifier__$h = undefined;
  /* functional template */
  var __vue_is_functional_template__$h = false;
  /* style inject */
  
  /* style inject SSR */
  
  /* style inject shadow dom */
  

  
  var __vue_component__$h = /*#__PURE__*/normalizeComponent(
    { render: __vue_render__$g, staticRenderFns: __vue_staticRenderFns__$g },
    __vue_inject_styles__$h,
    __vue_script__$h,
    __vue_scope_id__$h,
    __vue_is_functional_template__$h,
    __vue_module_identifier__$h,
    false,
    undefined,
    undefined,
    undefined
  );

__vue_component__$h.install = function (Vue) {
    Vue.component(__vue_component__$h.name, __vue_component__$h);
};

var script$g = {
    name: "KChangeOption",
    props: {
        value: {
            type: Array,
            required: true
        },
        type: {
            type: String,
            default: "option"
        }
    },
    methods: {
        handleAdd() {
            let addData = [...this.value, {
                value: "",
                label: ""
            }];
            this.$emit("input", addData);
        },
        handleAddCol() {
            let addData = [...this.value, {
                span: 12,
                list: []
            }];
            this.$emit("input", addData);
        },
        handleAddRules() {
            let addData = [...this.value, {
                pattern: "",
                message: ""
            }];
            this.$emit("input", addData);
        },
        handleDelete(deleteIndex) {
            this.$emit("input", this.value.filter((val, index) => index !== deleteIndex));
        }
    }
};

/* script */ var __vue_script__$g = script$g;
/* template */
var __vue_render__$f = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c(
    "div",
    { staticClass: "option-change-container" },
    [
      _vm.type === "option"
        ? _c(
            "a-row",
            { attrs: { gutter: 8 } },
            [
              _vm._l(_vm.value, function(val, index) {
                return _c(
                  "div",
                  { key: index, staticClass: "option-change-box" },
                  [
                    _c(
                      "a-col",
                      { attrs: { span: 9 } },
                      [
                        _c("a-input", {
                          attrs: { placeholder: _vm.$t("名称") },
                          model: {
                            value: val.label,
                            callback: function($$v) {
                              _vm.$set(val, "label", $$v);
                            },
                            expression: "val.label"
                          }
                        })
                      ],
                      1
                    ),
                    _vm._v(" "),
                    _c(
                      "a-col",
                      { attrs: { span: 9 } },
                      [
                        _c("a-input", {
                          attrs: { placeholder: _vm.$t("值") },
                          model: {
                            value: val.value,
                            callback: function($$v) {
                              _vm.$set(val, "value", $$v);
                            },
                            expression: "val.value"
                          }
                        })
                      ],
                      1
                    ),
                    _vm._v(" "),
                    _c("a-col", { attrs: { span: 6 } }, [
                      _c(
                        "div",
                        {
                          staticClass: "option-delete-box",
                          on: {
                            click: function($event) {
                              return _vm.handleDelete(index)
                            }
                          }
                        },
                        [_c("a-icon", { attrs: { type: "delete" } })],
                        1
                      )
                    ])
                  ],
                  1
                )
              }),
              _vm._v(" "),
              _c("a-col", { attrs: { span: 24 } }, [
                _c("a", { on: { click: _vm.handleAdd } }, [
                  _vm._v(_vm._s(_vm.$t("添加")))
                ])
              ])
            ],
            2
          )
        : _vm._e(),
      _vm._v(" "),
      _vm.type === "rules"
        ? _c(
            "a-row",
            { attrs: { gutter: 8 } },
            [
              _vm._l(_vm.value, function(val, index) {
                return _c("span", { key: index }, [
                  index !== 0
                    ? _c(
                        "div",
                        { staticClass: "option-change-box" },
                        [
                          _c(
                            "a-col",
                            { attrs: { span: 18 } },
                            [
                              _c("a-input", {
                                attrs: { placeholder: _vm.$t("提示信息") },
                                model: {
                                  value: val.message,
                                  callback: function($$v) {
                                    _vm.$set(val, "message", $$v);
                                  },
                                  expression: "val.message"
                                }
                              })
                            ],
                            1
                          ),
                          _vm._v(" "),
                          _c(
                            "a-col",
                            { attrs: { span: 18 } },
                            [
                              _c("a-input", {
                                attrs: {
                                  placeholder: _vm.$t("正则表达式pattern")
                                },
                                model: {
                                  value: val.pattern,
                                  callback: function($$v) {
                                    _vm.$set(val, "pattern", $$v);
                                  },
                                  expression: "val.pattern"
                                }
                              })
                            ],
                            1
                          ),
                          _vm._v(" "),
                          _c("a-col", { attrs: { span: 6 } }, [
                            _c(
                              "div",
                              {
                                staticClass: "option-delete-box",
                                on: {
                                  click: function($event) {
                                    return _vm.handleDelete(index)
                                  }
                                }
                              },
                              [_c("a-icon", { attrs: { type: "delete" } })],
                              1
                            )
                          ])
                        ],
                        1
                      )
                    : _vm._e()
                ])
              }),
              _vm._v(" "),
              _c("a-col", { attrs: { span: 24 } }, [
                _c("a", { on: { click: _vm.handleAddRules } }, [
                  _vm._v(_vm._s(_vm.$t("增加校验")))
                ])
              ])
            ],
            2
          )
        : _vm.type === "colspan"
        ? _c(
            "a-row",
            { attrs: { gutter: 8 } },
            [
              _vm._l(_vm.value, function(val, index) {
                return _c(
                  "div",
                  { key: index, staticClass: "option-change-box" },
                  [
                    _c(
                      "a-col",
                      { attrs: { span: 18 } },
                      [
                        _c("a-input-number", {
                          staticStyle: { width: "100%" },
                          attrs: { max: 24, placeholder: _vm.$t("名称") },
                          model: {
                            value: val.span,
                            callback: function($$v) {
                              _vm.$set(val, "span", $$v);
                            },
                            expression: "val.span"
                          }
                        })
                      ],
                      1
                    ),
                    _vm._v(" "),
                    _c("a-col", { attrs: { span: 6 } }, [
                      _c(
                        "div",
                        {
                          staticClass: "option-delete-box",
                          on: {
                            click: function($event) {
                              return _vm.handleDelete(index)
                            }
                          }
                        },
                        [_c("a-icon", { attrs: { type: "delete" } })],
                        1
                      )
                    ])
                  ],
                  1
                )
              }),
              _vm._v(" "),
              _c("a-col", { attrs: { span: 24 } }, [
                _c("a", { on: { click: _vm.handleAddCol } }, [
                  _vm._v(_vm._s(_vm.$t("添加")))
                ])
              ])
            ],
            2
          )
        : _vm._e()
    ],
    1
  )
};
var __vue_staticRenderFns__$f = [];
__vue_render__$f._withStripped = true;

  /* style */
  var __vue_inject_styles__$g = undefined;
  /* scoped */
  var __vue_scope_id__$g = undefined;
  /* module identifier */
  var __vue_module_identifier__$g = undefined;
  /* functional template */
  var __vue_is_functional_template__$g = false;
  /* style inject */
  
  /* style inject SSR */
  
  /* style inject shadow dom */
  

  
  var __vue_component__$g = /*#__PURE__*/normalizeComponent(
    { render: __vue_render__$f, staticRenderFns: __vue_staticRenderFns__$f },
    __vue_inject_styles__$g,
    __vue_script__$g,
    __vue_scope_id__$g,
    __vue_is_functional_template__$g,
    __vue_module_identifier__$g,
    false,
    undefined,
    undefined,
    undefined
  );

__vue_component__$g.install = function (Vue) {
    Vue.component(__vue_component__$g.name, __vue_component__$g);
};

var script$f = {
    name: 'kCheckbox',
    data() {
        return {
            chackboxVal: false
        };
    },
    props: {
        value: {
            type: Boolean,
            default: false
        },
        label: {
            type: String,
            default: ''
        }
    },
    computed: {
        _val() {
            this.handleSetChackboxVal(this.value);
            return this.value;
        }
    },
    methods: {
        handleChange(e) {
            this.$emit('input', e.target.checked);
        },
        handleSetChackboxVal(val) {
            this.chackboxVal = val;
        }
    }
};

/* script */ var __vue_script__$f = script$f;

/* template */
var __vue_render__$e = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c(
    "a-checkbox",
    {
      attrs: { val: _vm._val, checked: _vm.chackboxVal },
      on: { change: _vm.handleChange }
    },
    [_vm._v("\n  " + _vm._s(_vm.label) + "\n")]
  )
};
var __vue_staticRenderFns__$e = [];
__vue_render__$e._withStripped = true;

  /* style */
  var __vue_inject_styles__$f = undefined;
  /* scoped */
  var __vue_scope_id__$f = undefined;
  /* module identifier */
  var __vue_module_identifier__$f = undefined;
  /* functional template */
  var __vue_is_functional_template__$f = false;
  /* style inject */
  
  /* style inject SSR */
  
  /* style inject shadow dom */
  

  
  var __vue_component__$f = /*#__PURE__*/normalizeComponent(
    { render: __vue_render__$e, staticRenderFns: __vue_staticRenderFns__$e },
    __vue_inject_styles__$f,
    __vue_script__$f,
    __vue_scope_id__$f,
    __vue_is_functional_template__$f,
    __vue_module_identifier__$f,
    false,
    undefined,
    undefined,
    undefined
  );

__vue_component__$f.install = function (Vue) {
    Vue.component(__vue_component__$f.name, __vue_component__$f);
};

var script$e = {
    name: 'ProxyFormItem',
    inject: ['getFormRenderPageConfig'],
    props: {
        label: {
            type: String,
            default: ''
        },
        componentConfig: {
            type: Object,
            default() {
                return {};
            }
        },
        promptMessage: {
            type: String,
            default: ''
        },
        rules: {
            type: Array,
            default() {
                return [];
            }
        }
    },
    data() {
        return {};
    },
    computed: {
        formRenderPageConfig() {
            if (typeof this.getFormRenderPageConfig === 'function') {
                return this.getFormRenderPageConfig();
            }
            return {};
        },
        layoutConfig() {
            if (this.formRenderPageConfig && this.formRenderPageConfig.layout === 'horizontal') {
                let labelSpan = 6;
                var labelCol = this.formRenderPageConfig.labelCol;
                if (labelCol && labelCol.span) {
                    labelSpan = labelCol.span < 6 ? 6 : labelCol.span;
                }
                let wrapperColSpan = 24 - labelSpan;
                var wrapperCol = this.formRenderPageConfig.wrapperCol;
                if (wrapperCol && wrapperCol.span) {
                    wrapperColSpan = wrapperCol.span;
                }
                return {
                    labelCol: {
                        span: labelSpan
                    },
                    wrapperCol: {
                        span: wrapperColSpan
                    }
                };
            }
            return {};
        }
    },
    mounted() {},
    methods: {}
};

/* script */ var __vue_script__$e = script$e;
/* template */
var __vue_render__$d = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c(
    "div",
    { staticClass: "proxy-form-item" },
    [
      _c(
        "a-form-model-item",
        _vm._b(
          {
            ref: "buildFormItem",
            class: {
              "horizontal-label":
                _vm.formRenderPageConfig &&
                _vm.formRenderPageConfig.layout === "horizontal",
              "vertical-label":
                _vm.formRenderPageConfig &&
                _vm.formRenderPageConfig.layout === "vertical"
            },
            attrs: {
              colon:
                _vm.formRenderPageConfig &&
                _vm.formRenderPageConfig.layout === "horizontal",
              "label-col": _vm.layoutConfig.labelCol,
              "wrapper-col": _vm.layoutConfig.wrapperCol,
              prop: _vm.componentConfig.model,
              rules: _vm.rules
            }
          },
          "a-form-model-item",
          _vm.$attrs,
          false
        ),
        [
          _c("template", { slot: "label" }, [
            _c(
              "div",
              { staticClass: "proxy-form-label" },
              [
                _c("g-ellipsis", {
                  style: {
                    width: "inherit",
                    maxWidth: "100%"
                  },
                  attrs: { content: _vm.$t(_vm.label), isDynamicContent: true }
                }),
                _vm._v(" "),
                _vm._t("label"),
                _vm._v(" "),
                _vm.promptMessage
                  ? _c(
                      "div",
                      [
                        _c(
                          "a-tooltip",
                          { attrs: { placement: "top" } },
                          [
                            _c("template", { slot: "title" }, [
                              _vm._v(
                                "\n              " +
                                  _vm._s(_vm.$t(_vm.promptMessage)) +
                                  "\n            "
                              )
                            ]),
                            _vm._v(" "),
                            _c("a-icon", {
                              attrs: {
                                type: "question-circle",
                                theme: "filled"
                              }
                            })
                          ],
                          2
                        )
                      ],
                      1
                    )
                  : _vm._e()
              ],
              2
            )
          ]),
          _vm._v(" "),
          _vm._t("default")
        ],
        2
      )
    ],
    1
  )
};
var __vue_staticRenderFns__$d = [];
__vue_render__$d._withStripped = true;

  /* style */
  var __vue_inject_styles__$e = undefined;
  /* scoped */
  var __vue_scope_id__$e = undefined;
  /* module identifier */
  var __vue_module_identifier__$e = undefined;
  /* functional template */
  var __vue_is_functional_template__$e = false;
  /* style inject */
  
  /* style inject SSR */
  
  /* style inject shadow dom */
  

  
  var __vue_component__$e = /*#__PURE__*/normalizeComponent(
    { render: __vue_render__$d, staticRenderFns: __vue_staticRenderFns__$d },
    __vue_inject_styles__$e,
    __vue_script__$e,
    __vue_scope_id__$e,
    __vue_is_functional_template__$e,
    __vue_module_identifier__$e,
    false,
    undefined,
    undefined,
    undefined
  );

__vue_component__$e.install = function (Vue) {
    Vue.component(__vue_component__$e.name, __vue_component__$e);
};

var script$d = {
    name: 'FormSelectInput',
    mixins: [FormComponentMixin, selectMixin],
    props: {},
    data() {
        return {
            searchInputValue: '',
            isExistOption: false
        };
    },
    computed: {},
    watch: {},
    created() {},
    methods: {
        handleChange(value, key, target) {
            FormComponentMixin.methods.handleChange.call(this, value, key, target);
            let selectedOption = this.formSelectOption.find(val => val.value == value);
            if (selectedOption) {
                if (this.componentConfig.fieldRelatedName) {
                    this.formSource.formDataControl.updateFormData({
                        [this.componentConfig.fieldRelatedName]: selectedOption.label || selectedOption.text
                    });
                }
                var {extendsfields = {}} = this.formSource.formDataControl.formData;
                this.formSource.formDataControl.updateFormData({
                    extendsfields: {
                        ...extendsfields,
                        [this.componentConfig.model]: selectedOption
                    }
                });
            }
        },
        filterOption(input, option) {
            return option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0;
        },
        handleSearch(value, option) {
            if (!this.componentConfig.searchCreate) return;
            this.searchInputValue = value.trim();
            if (this.searchInputValue) {
                var status = this.formSelectOption.findIndex(item => item.label === this.searchInputValue);
                this.isExistOption = status !== -1;
            }
        }
    }
};

/* script */ var __vue_script__$d = script$d;
/* template */
var __vue_render__$c = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c(
    "div",
    { staticClass: "form-component form-select-input" },
    [
      _c(
        "proxy-form-item",
        {
          attrs: {
            label: _vm.componentConfig.label,
            promptMessage: _vm.componentConfig.promptMessageContent,
            rules: _vm.componentConfig.rules
          }
        },
        [
          _vm.renderScene === "edit" && _vm.isRenderCurrentUser
            ? _c(
                "a-select",
                {
                  attrs: {
                    placeholder: _vm.componentConfig.placeholder,
                    showSearch: _vm.componentConfig.showSearch,
                    "filter-option": _vm.filterOption,
                    disabled: true,
                    allowClear: _vm.componentConfig.clearable,
                    mode: _vm.componentConfig.multiple ? "multiple" : ""
                  },
                  on: {
                    search: _vm.handleSearch,
                    change: function($event) {
                      return _vm.handleChange(
                        $event,
                        _vm.componentConfig.model,
                        _vm.componentConfig
                      )
                    }
                  },
                  model: {
                    value: _vm.formValue,
                    callback: function($$v) {
                      _vm.formValue = $$v;
                    },
                    expression: "formValue"
                  }
                },
                [
                  _c(
                    "a-select-option",
                    { attrs: { value: _vm.currentCustomer.value } },
                    [
                      _vm._v(
                        "\n          " +
                          _vm._s(
                            _vm.currentCustomer.label ||
                              _vm.currentCustomer.text
                          ) +
                          "\n        "
                      )
                    ]
                  )
                ],
                1
              )
            : _vm.renderScene === "edit"
            ? _c(
                "a-select",
                {
                  attrs: {
                    placeholder: _vm.componentConfig.placeholder,
                    showSearch: _vm.componentConfig.showSearch,
                    "filter-option": _vm.filterOption,
                    disabled: _vm.componentConfig.disabled,
                    allowClear: _vm.componentConfig.clearable,
                    mode: _vm.componentConfig.multiple ? "multiple" : ""
                  },
                  on: {
                    search: _vm.handleSearch,
                    change: function($event) {
                      return _vm.handleChange(
                        $event,
                        _vm.componentConfig.model,
                        _vm.componentConfig
                      )
                    }
                  },
                  model: {
                    value: _vm.formValue,
                    callback: function($$v) {
                      _vm.formValue = $$v;
                    },
                    expression: "formValue"
                  }
                },
                [
                  _vm.componentConfig.showSearch &&
                  !_vm.isExistOption &&
                  _vm.searchInputValue
                    ? _c(
                        "a-select-option",
                        {
                          key: _vm.searchInputValue,
                          attrs: { value: _vm.searchInputValue }
                        },
                        [_vm._v(_vm._s(_vm.searchInputValue))]
                      )
                    : _vm._e(),
                  _vm._v(" "),
                  _vm._l(_vm.formSelectOption, function(item) {
                    return [
                      _c("a-select-option", { attrs: { value: item.value } }, [
                        _vm._v(
                          "\n          " +
                            _vm._s(item.label || item.text) +
                            "\n        "
                        )
                      ])
                    ]
                  })
                ],
                2
              )
            : _vm.renderScene === "read"
            ? _c(
                "a-select",
                {
                  directives: [
                    {
                      name: "decorator",
                      rawName: "v-decorator",
                      value: [
                        _vm.componentConfig.model,
                        {
                          initialValue: _vm.componentConfig.defaultValue
                        }
                      ],
                      expression:
                        "[\n        componentConfig.model,\n        {\n          initialValue: componentConfig.defaultValue\n        }\n      ]"
                    }
                  ],
                  attrs: {
                    placeholder: _vm.componentConfig.placeholder,
                    disabled: true,
                    mode: _vm.componentConfig.multiple ? "multiple" : ""
                  }
                },
                [
                  _vm._l(_vm.formSelectOption, function(item) {
                    return [
                      _c("a-select-option", { attrs: { value: item.value } }, [
                        _vm._v(
                          "\n          " +
                            _vm._s(item.label || item.text) +
                            "\n        "
                        )
                      ])
                    ]
                  })
                ],
                2
              )
            : _vm.renderScene === "ide"
            ? _c(
                "a-select",
                {
                  attrs: {
                    value: _vm.componentConfig.defaultValue,
                    placeholder: _vm.componentConfig.placeholder,
                    disabled: _vm.componentConfig.disabled,
                    mode: _vm.componentConfig.multiple ? "multiple" : ""
                  }
                },
                [
                  _vm._l(_vm.formSelectOption, function(item) {
                    return [
                      _c("a-select-option", { attrs: { value: item.value } }, [
                        _vm._v(
                          "\n          " +
                            _vm._s(item.label || item.text) +
                            "\n        "
                        )
                      ])
                    ]
                  })
                ],
                2
              )
            : _vm._e()
        ],
        1
      )
    ],
    1
  )
};
var __vue_staticRenderFns__$c = [];
__vue_render__$c._withStripped = true;

  /* style */
  var __vue_inject_styles__$d = undefined;
  /* scoped */
  var __vue_scope_id__$d = undefined;
  /* module identifier */
  var __vue_module_identifier__$d = undefined;
  /* functional template */
  var __vue_is_functional_template__$d = false;
  /* style inject */
  
  /* style inject SSR */
  
  /* style inject shadow dom */
  

  
  var __vue_component__$d = /*#__PURE__*/normalizeComponent(
    { render: __vue_render__$c, staticRenderFns: __vue_staticRenderFns__$c },
    __vue_inject_styles__$d,
    __vue_script__$d,
    __vue_scope_id__$d,
    __vue_is_functional_template__$d,
    __vue_module_identifier__$d,
    false,
    undefined,
    undefined,
    undefined
  );

__vue_component__$d.install = function (Vue) {
    console.log(99999);
    Vue.component(__vue_component__$d.name, __vue_component__$d);
};

var vueTypes = {};

(function (exports) {
    var e, t = (e = require$$0) && "object" == typeof e && ("default" in e) ? e.default : e;
    function r(e, t) {
        for (var r = 0; r < t.length; r++) {
            var n = t[r];
            (n.enumerable = n.enumerable || !1, n.configurable = !0, ("value" in n) && (n.writable = !0), Object.defineProperty(e, n.key, n));
        }
    }
    function n(e, t, n) {
        return (t && r(e.prototype, t), n && r(e, n), e);
    }
    function o() {
        return (o = Object.assign || (function (e) {
            for (var t = 1; t < arguments.length; t++) {
                var r = arguments[t];
                for (var n in r) Object.prototype.hasOwnProperty.call(r, n) && (e[n] = r[n]);
            }
            return e;
        })).apply(this, arguments);
    }
    function i(e, t) {
        (e.prototype = Object.create(t.prototype), e.prototype.constructor = e, e.__proto__ = t);
    }
    function u(e, t) {
        if (null == e) return {};
        var r, n, o = {}, i = Object.keys(e);
        for (n = 0; n < i.length; n++) t.indexOf(r = i[n]) >= 0 || (o[r] = e[r]);
        return o;
    }
    function a(e) {
        return 1 == (null != (t = e) && "object" == typeof t && !1 === Array.isArray(t)) && "[object Object]" === Object.prototype.toString.call(e);
        var t;
    }
    var f = Object.prototype, c = f.toString, s = f.hasOwnProperty, l = /^\s*function (\w+)/;
    function p(e) {
        var t, r = null !== (t = null == e ? void 0 : e.type) && void 0 !== t ? t : e;
        if (r) {
            var n = r.toString().match(l);
            return n ? n[1] : "";
        }
        return "";
    }
    var y = function (e) {
        var t, r;
        return !1 !== a(e) && "function" == typeof (t = e.constructor) && !1 !== a(r = t.prototype) && !1 !== r.hasOwnProperty("isPrototypeOf");
    }, v = function (e) {
        return e;
    }, d = v;
    if ("production" !== undefined) {
        var h = "undefined" != typeof console;
        d = h ? function (e) {
            !1 === t.config.silent && console.warn("[VueTypes warn]: " + e);
        } : v;
    }
    var b = function (e, t) {
        return s.call(e, t);
    }, O = Number.isInteger || (function (e) {
        return "number" == typeof e && isFinite(e) && Math.floor(e) === e;
    }), g = Array.isArray || (function (e) {
        return "[object Array]" === c.call(e);
    }), m = function (e) {
        return "[object Function]" === c.call(e);
    }, j = function (e) {
        return y(e) && b(e, "_vueTypes_name");
    }, _ = function (e) {
        return y(e) && (b(e, "type") || ["_vueTypes_name", "validator", "default", "required"].some(function (t) {
            return b(e, t);
        }));
    };
    function T(e, t) {
        return Object.defineProperty(e.bind(t), "__original", {
            value: e
        });
    }
    function x(e, t, r) {
        var n;
        void 0 === r && (r = !1);
        var o = !0, i = "";
        n = y(e) ? e : {
            type: e
        };
        var u = j(n) ? n._vueTypes_name + " - " : "";
        if (_(n) && null !== n.type) {
            if (void 0 === n.type) return o;
            if (!n.required && void 0 === t) return o;
            void 0 === n.type ? i = "any" : g(n.type) ? (o = n.type.some(function (e) {
                return !0 === x(e, t, !0);
            }), i = n.type.map(function (e) {
                return p(e);
            }).join(" or ")) : o = "Array" === (i = p(n)) ? g(t) : "Object" === i ? y(t) : "String" === i || "Number" === i || "Boolean" === i || "Function" === i ? (function (e) {
                if (null == e) return "";
                var t = e.constructor.toString().match(l);
                return t ? t[1] : "";
            })(t) === i : t instanceof n.type;
        }
        if (!o) {
            var a = u + 'value "' + t + '" should be of type "' + i + '"';
            return !1 === r ? (d(a), !1) : a;
        }
        if (b(n, "validator") && m(n.validator)) {
            var f = d, c = [];
            if ((d = function (e) {
                c.push(e);
            }, o = n.validator(t), d = f, !o)) {
                var s = (c.length > 1 ? "* " : "") + c.join("\n* ");
                return (c.length = 0, !1 === r ? (d(s), o) : s);
            }
        }
        return o;
    }
    function w(e, t) {
        var r = Object.defineProperties(t, {
            _vueTypes_name: {
                value: e,
                writable: !0
            },
            isRequired: {
                get: function () {
                    return (this.required = !0, this);
                }
            },
            def: {
                value: function (e) {
                    return void 0 === e ? (b(this, "default") && delete this.default, this) : m(e) || !0 === x(this, e, !0) ? (this.default = g(e) ? function () {
                        return [].concat(e);
                    } : y(e) ? function () {
                        return Object.assign({}, e);
                    } : e, this) : (d(this._vueTypes_name + ' - invalid default value: "' + e + '"'), this);
                }
            }
        }), n = r.validator;
        return (m(n) && (r.validator = T(n, r)), r);
    }
    function k(e, t) {
        var r = w(e, t);
        return Object.defineProperty(r, "validate", {
            value: function (e) {
                return (m(this.validator) && d(this._vueTypes_name + " - calling .validate() will overwrite the current custom validator function. Validator info:\n" + JSON.stringify(this)), this.validator = T(e, this), this);
            }
        });
    }
    function P(e, t, r) {
        var n, o, i = (n = t, o = {}, Object.getOwnPropertyNames(n).forEach(function (e) {
            o[e] = Object.getOwnPropertyDescriptor(n, e);
        }), Object.defineProperties({}, o));
        if ((i._vueTypes_name = e, !y(r))) return i;
        var a, f, c = r.validator, s = u(r, ["validator"]);
        if (m(c)) {
            var l = i.validator;
            (l && (l = null !== (f = (a = l).__original) && void 0 !== f ? f : a), i.validator = T(l ? function (e) {
                return l.call(this, e) && c.call(this, e);
            } : c, i));
        }
        return Object.assign(i, s);
    }
    function A(e) {
        return e.replace(/^(?!\s*$)/gm, "  ");
    }
    var q = function () {
        return k("any", {});
    }, E = function () {
        return k("function", {
            type: Function
        });
    }, N = function () {
        return k("boolean", {
            type: Boolean
        });
    }, V = function () {
        return k("string", {
            type: String
        });
    }, S = function () {
        return k("number", {
            type: Number
        });
    }, F = function () {
        return k("array", {
            type: Array
        });
    }, D = function () {
        return k("object", {
            type: Object
        });
    }, L = function () {
        return w("integer", {
            type: Number,
            validator: function (e) {
                return O(e);
            }
        });
    }, Y = function () {
        return w("symbol", {
            validator: function (e) {
                return "symbol" == typeof e;
            }
        });
    };
    function B(e, t) {
        if ((void 0 === t && (t = "custom validation failed"), "function" != typeof e)) throw new TypeError("[VueTypes error]: You must provide a function as argument");
        return w(e.name || "<<anonymous function>>", {
            validator: function (r) {
                var n = e(r);
                return (n || d(this._vueTypes_name + " - " + t), n);
            }
        });
    }
    function M(e) {
        if (!g(e)) throw new TypeError("[VueTypes error]: You must provide an array as argument.");
        var t = 'oneOf - value should be one of "' + e.join('", "') + '".', r = e.reduce(function (e, t) {
            if (null != t) {
                var r = t.constructor;
                -1 === e.indexOf(r) && e.push(r);
            }
            return e;
        }, []);
        return w("oneOf", {
            type: r.length > 0 ? r : void 0,
            validator: function (r) {
                var n = -1 !== e.indexOf(r);
                return (n || d(t), n);
            }
        });
    }
    function I(e) {
        if (!g(e)) throw new TypeError("[VueTypes error]: You must provide an array as argument");
        for (var t = !1, r = [], n = 0; n < e.length; n += 1) {
            var o = e[n];
            if (_(o)) {
                if (j(o) && "oneOf" === o._vueTypes_name) {
                    r = r.concat(o.type || []);
                    continue;
                }
                if ((m(o.validator) && (t = !0), void 0 !== o.type)) {
                    r = r.concat(o.type);
                    continue;
                }
            }
            r.push(o);
        }
        return (r = r.filter(function (e, t) {
            return r.indexOf(e) === t;
        }), w("oneOfType", t ? {
            type: r,
            validator: function (t) {
                var r = [], n = e.some(function (e) {
                    var n = x(j(e) && "oneOf" === e._vueTypes_name ? e.type || null : e, t, !0);
                    return ("string" == typeof n && r.push(n), !0 === n);
                });
                return (n || d("oneOfType - provided value does not match any of the " + r.length + " passed-in validators:\n" + A(r.join("\n"))), n);
            }
        } : {
            type: r
        }));
    }
    function J(e) {
        return w("arrayOf", {
            type: Array,
            validator: function (t) {
                var r, n = t.every(function (t) {
                    return !0 === (r = x(e, t, !0));
                });
                return (n || d("arrayOf - value validation error:\n" + A(r)), n);
            }
        });
    }
    function R(e) {
        return w("instanceOf", {
            type: e
        });
    }
    function $(e) {
        return w("objectOf", {
            type: Object,
            validator: function (t) {
                var r, n = Object.keys(t).every(function (n) {
                    return !0 === (r = x(e, t[n], !0));
                });
                return (n || d("objectOf - value validation error:\n" + A(r)), n);
            }
        });
    }
    function z(e) {
        var t = Object.keys(e), r = t.filter(function (t) {
            var r;
            return !!(null === (r = e[t]) || void 0 === r ? void 0 : r.required);
        }), n = w("shape", {
            type: Object,
            validator: function (n) {
                var o = this;
                if (!y(n)) return !1;
                var i = Object.keys(n);
                if (r.length > 0 && r.some(function (e) {
                    return -1 === i.indexOf(e);
                })) {
                    var u = r.filter(function (e) {
                        return -1 === i.indexOf(e);
                    });
                    return (d(1 === u.length ? 'shape - required property "' + u[0] + '" is not defined.' : 'shape - required properties "' + u.join('", "') + '" are not defined.'), !1);
                }
                return i.every(function (r) {
                    if (-1 === t.indexOf(r)) return !0 === o._vueTypes_isLoose || (d('shape - shape definition does not include a "' + r + '" property. Allowed keys: "' + t.join('", "') + '".'), !1);
                    var i = x(e[r], n[r], !0);
                    return ("string" == typeof i && d('shape - "' + r + '" property validation error:\n ' + A(i)), !0 === i);
                });
            }
        });
        return (Object.defineProperty(n, "_vueTypes_isLoose", {
            writable: !0,
            value: !1
        }), Object.defineProperty(n, "loose", {
            get: function () {
                return (this._vueTypes_isLoose = !0, this);
            }
        }), n);
    }
    var C = (function () {
        function e() {}
        return (e.extend = function (e) {
            var t = this;
            if (g(e)) return (e.forEach(function (e) {
                return t.extend(e);
            }), this);
            var r = e.name, n = e.validate, o = void 0 !== n && n, i = e.getter, a = void 0 !== i && i, f = u(e, ["name", "validate", "getter"]);
            if (b(this, r)) throw new TypeError('[VueTypes error]: Type "' + r + '" already defined');
            var c, s = f.type;
            return j(s) ? (delete f.type, Object.defineProperty(this, r, a ? {
                get: function () {
                    return P(r, s, f);
                }
            } : {
                value: function () {
                    var e, t = P(r, s, f);
                    return (t.validator && (t.validator = (e = t.validator).bind.apply(e, [t].concat([].slice.call(arguments)))), t);
                }
            })) : (c = a ? {
                get: function () {
                    var e = Object.assign({}, f);
                    return o ? k(r, e) : w(r, e);
                },
                enumerable: !0
            } : {
                value: function () {
                    var e, t, n = Object.assign({}, f);
                    return (e = o ? k(r, n) : w(r, n), n.validator && (e.validator = (t = n.validator).bind.apply(t, [e].concat([].slice.call(arguments)))), e);
                },
                enumerable: !0
            }, Object.defineProperty(this, r, c));
        }, n(e, null, [{
            key: "any",
            get: function () {
                return q();
            }
        }, {
            key: "func",
            get: function () {
                return E().def(this.defaults.func);
            }
        }, {
            key: "bool",
            get: function () {
                return N().def(this.defaults.bool);
            }
        }, {
            key: "string",
            get: function () {
                return V().def(this.defaults.string);
            }
        }, {
            key: "number",
            get: function () {
                return S().def(this.defaults.number);
            }
        }, {
            key: "array",
            get: function () {
                return F().def(this.defaults.array);
            }
        }, {
            key: "object",
            get: function () {
                return D().def(this.defaults.object);
            }
        }, {
            key: "integer",
            get: function () {
                return L().def(this.defaults.integer);
            }
        }, {
            key: "symbol",
            get: function () {
                return Y();
            }
        }]), e);
    })();
    function G(e) {
        var t;
        return (void 0 === e && (e = {
            func: function () {},
            bool: !0,
            string: "",
            number: 0,
            array: function () {
                return [];
            },
            object: function () {
                return {};
            },
            integer: 0
        }), (t = (function (t) {
            function r() {
                return t.apply(this, arguments) || this;
            }
            return (i(r, t), n(r, null, [{
                key: "sensibleDefaults",
                get: function () {
                    return o({}, this.defaults);
                },
                set: function (t) {
                    this.defaults = !1 !== t ? o({}, !0 !== t ? t : e) : {};
                }
            }]), r);
        })(C)).defaults = o({}, e), t);
    }
    (C.defaults = {}, C.custom = B, C.oneOf = M, C.instanceOf = R, C.oneOfType = I, C.arrayOf = J, C.objectOf = $, C.shape = z, C.utils = {
        validate: function (e, t) {
            return !0 === x(t, e, !0);
        },
        toType: function (e, t, r) {
            return (void 0 === r && (r = !1), r ? k(e, t) : w(e, t));
        }
    });
    var H = (function (e) {
        function t() {
            return e.apply(this, arguments) || this;
        }
        return (i(t, e), t);
    })(G());
    (Object.defineProperty(exports, "__esModule", {
        value: !0
    }), exports.any = q, exports.array = F, exports.arrayOf = J, exports.bool = N, exports.createTypes = G, exports.custom = B, exports.default = H, exports.fromType = P, exports.func = E, exports.instanceOf = R, exports.integer = L, exports.number = S, exports.object = D, exports.objectOf = $, exports.oneOf = M, exports.oneOfType = I, exports.shape = z, exports.string = V, exports.symbol = Y, exports.toType = w, exports.toValidableType = k, exports.validateType = x);
})(vueTypes);
var VueTypes = getDefaultExportFromCjs(vueTypes);

var script$c = {
    name: 'FormDistpicker',
    props: {
        value: VueTypes.object.def({
            province: '',
            city: '',
            area: ''
        }),
        bindDataInfo: VueTypes.object.def({
            provinceKey: '',
            cityKey: '',
            areaKey: ''
        }),
        componentConfig: VueTypes.object,
        formSource: VueTypes.object,
        currentFormData: VueTypes.object,
        renderIsChina: VueTypes.bool.def(true)
    },
    data() {
        return {};
    },
    watch: {
        renderIsChina: {
            handler(newVal, oldVal) {
                debugger;

            }
        }
    },
    created() {},
    mounted() {
        this.initDefaultValue();
    },
    methods: {
        handleChange(selected) {
            console.log('selected', selected);
            let data = {
                province: selected.province || ({}),
                city: selected.city || ({}),
                area: selected.area || ({})
            };
            this.$emit('input', data);
            this.$emit('change', data, '', this.componentConfig);
        },
        initDefaultValue() {
            if (this.formSource.formDataControl.getAllFormData && this.bindDataInfo['provinceKey'] && this.bindDataInfo['cityKey'] && this.bindDataInfo['areaKey']) ;
        },
        handleChangeItem(value, key) {
            var formData = {};
            var keyFieldMap = {
                provinceKey: 'province',
                cityKey: 'city',
                areaKey: 'area'
            };
            if (this.renderIsChina) {
                if (key === 'provinceKey') {
                    this.$emit('change', {
                        province: value.code,
                        city: '',
                        area: ''
                    });
                    formData[this.bindDataInfo['provinceKey']] = value.code;
                    formData[this.bindDataInfo['cityKey']] = '';
                    formData[this.bindDataInfo['areaKey']] = '';
                } else {
                    this.$set(this.value, keyFieldMap[key], value.code);
                    formData[this.bindDataInfo[key]] = value.code;
                }
                formData[this.bindDataInfo[`${key.substring(0, key.length - 3)}NameKey`]] = value.value;
            } else {
                var values = {
                    ...this.value
                };
                values[keyFieldMap[key]] = value;
                this.$emit('change', values);
                formData[this.bindDataInfo[key]] = value;
                formData[this.bindDataInfo[`${key.substring(0, key.length - 3)}NameKey`]] = value;
            }
            this.formSource.formDataControl.updateFormData(formData);
        }
    }
};

/* script */ var __vue_script__$c = script$c;
/* template */
var __vue_render__$b = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c(
    "div",
    [
      _vm.renderIsChina
        ? _c(
            "v-distpicker",
            _vm._b(
              {
                ref: "VDistpickerRef",
                attrs: {
                  province:
                    _vm.currentFormData[
                      _vm.bindDataInfo["provinceKey"] || "provinceKey"
                    ],
                  city:
                    _vm.currentFormData[
                      _vm.bindDataInfo["cityKey"] || "cityKey"
                    ],
                  area:
                    _vm.currentFormData[
                      _vm.bindDataInfo["areaKey"] || "areaKey"
                    ]
                },
                on: {
                  selected: _vm.handleChange,
                  province: function($event) {
                    return _vm.handleChangeItem($event, "provinceKey")
                  },
                  city: function($event) {
                    return _vm.handleChangeItem($event, "cityKey")
                  },
                  area: function($event) {
                    return _vm.handleChangeItem($event, "areaKey")
                  }
                }
              },
              "v-distpicker",
              _vm.$attrs,
              false
            )
          )
        : _c(
            "div",
            { staticClass: "custom-area" },
            [
              _c("a-input", {
                attrs: {
                  value:
                    _vm.currentFormData[
                      _vm.bindDataInfo["provinceKey"] || "provinceKey"
                    ],
                  placeholder: _vm.$t("请输入州")
                },
                on: {
                  change: function(e) {
                    return _vm.handleChangeItem(e.target.value, "provinceKey")
                  }
                }
              }),
              _vm._v(" "),
              _c("a-input", {
                attrs: {
                  value:
                    _vm.currentFormData[
                      _vm.bindDataInfo["cityKey"] || "cityKey"
                    ],
                  placeholder: _vm.$t("请输入城市")
                },
                on: {
                  change: function(e) {
                    return _vm.handleChangeItem(e.target.value, "cityKey")
                  }
                }
              })
            ],
            1
          )
    ],
    1
  )
};
var __vue_staticRenderFns__$b = [];
__vue_render__$b._withStripped = true;

  /* style */
  var __vue_inject_styles__$c = undefined;
  /* scoped */
  var __vue_scope_id__$c = undefined;
  /* module identifier */
  var __vue_module_identifier__$c = undefined;
  /* functional template */
  var __vue_is_functional_template__$c = false;
  /* style inject */
  
  /* style inject SSR */
  
  /* style inject shadow dom */
  

  
  var __vue_component__$c = /*#__PURE__*/normalizeComponent(
    { render: __vue_render__$b, staticRenderFns: __vue_staticRenderFns__$b },
    __vue_inject_styles__$c,
    __vue_script__$c,
    __vue_scope_id__$c,
    __vue_is_functional_template__$c,
    __vue_module_identifier__$c,
    false,
    undefined,
    undefined,
    undefined
  );

var script$b = {
    name: 'AreaSelect',
    model: {
        prop: 'value',
        event: 'change'
    },
    props: {
        options: {
            type: Array
        },
        value: {
            type: String
        },
        type: {
            type: String,
            default: 'edit'
        }
    },
    data() {
        return {};
    },
    computed: {
        computeValue: {
            get: function () {
                return this.value;
            },
            set: function (value) {
                this.$emit('change', value);
            }
        },
        computedOptions() {
            if (this.options && this.options.length > 0) {
                if (this.value && (this.value.code || this.value.name)) {
                    if (this.options.findIndex(item => item.name === this.value.name) === -1) {
                        return [this.value];
                    }
                }
                return this.options;
            } else if (this.value && (this.value.code || this.value.name)) {
                return [this.value];
            }
            return [];
        }
    },
    mounted() {},
    methods: {
        handleBlur() {
            console.log('blur');
        },
        handleFocus() {
            console.log('focus');
        },
        filterOption(input, option) {
            return option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0;
        }
    }
};

/* script */ var __vue_script__$b = script$b;
/* template */
var __vue_render__$a = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c(
    "div",
    { staticClass: "area-select" },
    [
      _c(
        "a-select",
        _vm._g(
          _vm._b(
            {
              attrs: {
                "show-search": "",
                allowClear: "",
                "option-filter-prop": "children",
                "filter-option": _vm.filterOption
              },
              model: {
                value: _vm.computeValue,
                callback: function($$v) {
                  _vm.computeValue = $$v;
                },
                expression: "computeValue"
              }
            },
            "a-select",
            _vm.$attrs,
            false
          ),
          _vm.$listeners
        ),
        _vm._l(_vm.computedOptions, function(item, index) {
          return _c(
            "a-select-option",
            { key: item.code + "-" + index, attrs: { value: item.code } },
            [_vm._v("\n    " + _vm._s(item.name) + "\n  ")]
          )
        }),
        1
      )
    ],
    1
  )
};
var __vue_staticRenderFns__$a = [];
__vue_render__$a._withStripped = true;

  /* style */
  var __vue_inject_styles__$b = undefined;
  /* scoped */
  var __vue_scope_id__$b = undefined;
  /* module identifier */
  var __vue_module_identifier__$b = undefined;
  /* functional template */
  var __vue_is_functional_template__$b = false;
  /* style inject */
  
  /* style inject SSR */
  
  /* style inject shadow dom */
  

  
  var __vue_component__$b = /*#__PURE__*/normalizeComponent(
    { render: __vue_render__$a, staticRenderFns: __vue_staticRenderFns__$a },
    __vue_inject_styles__$b,
    __vue_script__$b,
    __vue_scope_id__$b,
    __vue_is_functional_template__$b,
    __vue_module_identifier__$b,
    false,
    undefined,
    undefined,
    undefined
  );

var provinceData = {
    110000: '北京市',
    120000: '天津市',
    130000: '河北省',
    140000: '山西省',
    150000: '内蒙古自治区',
    210000: '辽宁省',
    220000: '吉林省',
    230000: '黑龙江省',
    310000: '上海市',
    320000: '江苏省',
    330000: '浙江省',
    340000: '安徽省',
    350000: '福建省',
    360000: '江西省',
    370000: '山东省',
    410000: '河南省',
    420000: '湖北省',
    430000: '湖南省',
    440000: '广东省',
    450000: '广西壮族自治区',
    460000: '海南省',
    500000: '重庆市',
    510000: '四川省',
    520000: '贵州省',
    530000: '云南省',
    540000: '西藏自治区',
    610000: '陕西省',
    620000: '甘肃省',
    630000: '青海省',
    640000: '宁夏回族自治区',
    650000: '新疆维吾尔自治区',
    710000: '台湾省',
    810000: '香港特别行政区',
    820000: '澳门特别行政区',
    900000: '海外'
};

var cityData = {
    110000: {
        110100: "北京市"
    },
    120000: {
        120100: "天津市"
    },
    130000: {
        130100: "石家庄市",
        130200: "唐山市",
        130300: "秦皇岛市",
        130400: "邯郸市",
        130500: "邢台市",
        130600: "保定市",
        130700: "张家口市",
        130800: "承德市",
        130900: "沧州市",
        131000: "廊坊市",
        131100: "衡水市"
    },
    140000: {
        140100: "太原市",
        140200: "大同市",
        140300: "阳泉市",
        140400: "长治市",
        140500: "晋城市",
        140600: "朔州市",
        140700: "晋中市",
        140800: "运城市",
        140900: "忻州市",
        141000: "临汾市",
        141100: "吕梁市"
    },
    150000: {
        150100: "呼和浩特市",
        150200: "包头市",
        150300: "乌海市",
        150400: "赤峰市",
        150500: "通辽市",
        150600: "鄂尔多斯市",
        150700: "呼伦贝尔市",
        150800: "巴彦淖尔市",
        150900: "乌兰察布市",
        152200: "兴安盟",
        152500: "锡林郭勒盟",
        152900: "阿拉善盟"
    },
    210000: {
        210100: "沈阳市",
        210200: "大连市",
        210300: "鞍山市",
        210400: "抚顺市",
        210500: "本溪市",
        210600: "丹东市",
        210700: "锦州市",
        210800: "营口市",
        210900: "阜新市",
        211000: "辽阳市",
        211100: "盘锦市",
        211200: "铁岭市",
        211300: "朝阳市",
        211400: "葫芦岛市"
    },
    220000: {
        220100: "长春市",
        220200: "吉林市",
        220300: "四平市",
        220400: "辽源市",
        220500: "通化市",
        220600: "白山市",
        220700: "松原市",
        220800: "白城市",
        222400: "延边朝鲜族自治州"
    },
    230000: {
        230100: "哈尔滨市",
        230200: "齐齐哈尔市",
        230300: "鸡西市",
        230400: "鹤岗市",
        230500: "双鸭山市",
        230600: "大庆市",
        230700: "伊春市",
        230800: "佳木斯市",
        230900: "七台河市",
        231000: "牡丹江市",
        231100: "黑河市",
        231200: "绥化市",
        232700: "大兴安岭地区"
    },
    310000: {
        310100: "上海市"
    },
    320000: {
        320100: "南京市",
        320200: "无锡市",
        320300: "徐州市",
        320400: "常州市",
        320500: "苏州市",
        320600: "南通市",
        320700: "连云港市",
        320800: "淮安市",
        320900: "盐城市",
        321000: "扬州市",
        321100: "镇江市",
        321200: "泰州市",
        321300: "宿迁市"
    },
    330000: {
        330100: "杭州市",
        330200: "宁波市",
        330300: "温州市",
        330400: "嘉兴市",
        330500: "湖州市",
        330600: "绍兴市",
        330700: "金华市",
        330800: "衢州市",
        330900: "舟山市",
        331000: "台州市",
        331100: "丽水市"
    },
    340000: {
        340100: "合肥市",
        340200: "芜湖市",
        340300: "蚌埠市",
        340400: "淮南市",
        340500: "马鞍山市",
        340600: "淮北市",
        340700: "铜陵市",
        340800: "安庆市",
        341000: "黄山市",
        341100: "滁州市",
        341200: "阜阳市",
        341300: "宿州市",
        341500: "六安市",
        341600: "亳州市",
        341700: "池州市",
        341800: "宣城市"
    },
    350000: {
        350100: "福州市",
        350200: "厦门市",
        350300: "莆田市",
        350400: "三明市",
        350500: "泉州市",
        350600: "漳州市",
        350700: "南平市",
        350800: "龙岩市",
        350900: "宁德市"
    },
    360000: {
        360100: "南昌市",
        360200: "景德镇市",
        360300: "萍乡市",
        360400: "九江市",
        360500: "新余市",
        360600: "鹰潭市",
        360700: "赣州市",
        360800: "吉安市",
        360900: "宜春市",
        361000: "抚州市",
        361100: "上饶市"
    },
    370000: {
        370100: "济南市",
        370200: "青岛市",
        370300: "淄博市",
        370400: "枣庄市",
        370500: "东营市",
        370600: "烟台市",
        370700: "潍坊市",
        370800: "济宁市",
        370900: "泰安市",
        371000: "威海市",
        371100: "日照市",
        371300: "临沂市",
        371400: "德州市",
        371500: "聊城市",
        371600: "滨州市",
        371700: "菏泽市"
    },
    410000: {
        410100: "郑州市",
        410200: "开封市",
        410300: "洛阳市",
        410400: "平顶山市",
        410500: "安阳市",
        410600: "鹤壁市",
        410700: "新乡市",
        410800: "焦作市",
        410900: "濮阳市",
        411000: "许昌市",
        411100: "漯河市",
        411200: "三门峡市",
        411300: "南阳市",
        411400: "商丘市",
        411500: "信阳市",
        411600: "周口市",
        411700: "驻马店市",
        419000: "省直辖县"
    },
    420000: {
        420100: "武汉市",
        420200: "黄石市",
        420300: "十堰市",
        420500: "宜昌市",
        420600: "襄阳市",
        420700: "鄂州市",
        420800: "荆门市",
        420900: "孝感市",
        421000: "荆州市",
        421100: "黄冈市",
        421200: "咸宁市",
        421300: "随州市",
        422800: "恩施土家族苗族自治州",
        429000: "省直辖县"
    },
    430000: {
        430100: "长沙市",
        430200: "株洲市",
        430300: "湘潭市",
        430400: "衡阳市",
        430500: "邵阳市",
        430600: "岳阳市",
        430700: "常德市",
        430800: "张家界市",
        430900: "益阳市",
        431000: "郴州市",
        431100: "永州市",
        431200: "怀化市",
        431300: "娄底市",
        433100: "湘西土家族苗族自治州"
    },
    440000: {
        440100: "广州市",
        440200: "韶关市",
        440300: "深圳市",
        440400: "珠海市",
        440500: "汕头市",
        440600: "佛山市",
        440700: "江门市",
        440800: "湛江市",
        440900: "茂名市",
        441200: "肇庆市",
        441300: "惠州市",
        441400: "梅州市",
        441500: "汕尾市",
        441600: "河源市",
        441700: "阳江市",
        441800: "清远市",
        441900: "东莞市",
        442000: "中山市",
        445100: "潮州市",
        445200: "揭阳市",
        445300: "云浮市"
    },
    450000: {
        450100: "南宁市",
        450200: "柳州市",
        450300: "桂林市",
        450400: "梧州市",
        450500: "北海市",
        450600: "防城港市",
        450700: "钦州市",
        450800: "贵港市",
        450900: "玉林市",
        451000: "百色市",
        451100: "贺州市",
        451200: "河池市",
        451300: "来宾市",
        451400: "崇左市"
    },
    460000: {
        460100: "海口市",
        460200: "三亚市",
        460300: "三沙市",
        460400: "儋州市"
    },
    500000: {
        500100: "重庆市",
        500200: "县"
    },
    510000: {
        510100: "成都市",
        510300: "自贡市",
        510400: "攀枝花市",
        510500: "泸州市",
        510600: "德阳市",
        510700: "绵阳市",
        510800: "广元市",
        510900: "遂宁市",
        511000: "内江市",
        511100: "乐山市",
        511300: "南充市",
        511400: "眉山市",
        511500: "宜宾市",
        511600: "广安市",
        511700: "达州市",
        511800: "雅安市",
        511900: "巴中市",
        512000: "资阳市",
        513200: "阿坝藏族羌族自治州",
        513300: "甘孜藏族自治州",
        513400: "凉山彝族自治州"
    },
    520000: {
        520100: "贵阳市",
        520200: "六盘水市",
        520300: "遵义市",
        520400: "安顺市",
        520500: "毕节市",
        520600: "铜仁市",
        522300: "黔西南布依族苗族自治州",
        522600: "黔东南苗族侗族自治州",
        522700: "黔南布依族苗族自治州"
    },
    530000: {
        530100: "昆明市",
        530300: "曲靖市",
        530400: "玉溪市",
        530500: "保山市",
        530600: "昭通市",
        530700: "丽江市",
        530800: "普洱市",
        530900: "临沧市",
        532300: "楚雄彝族自治州",
        532500: "红河哈尼族彝族自治州",
        532600: "文山壮族苗族自治州",
        532800: "西双版纳傣族自治州",
        532900: "大理白族自治州",
        533100: "德宏傣族景颇族自治州",
        533300: "怒江傈僳族自治州",
        533400: "迪庆藏族自治州"
    },
    540000: {
        540100: "拉萨市",
        540200: "日喀则市",
        540300: "昌都市",
        540400: "林芝市",
        540500: "山南市",
        540600: "那曲市",
        542500: "阿里地区"
    },
    610000: {
        610100: "西安市",
        610200: "铜川市",
        610300: "宝鸡市",
        610400: "咸阳市",
        610500: "渭南市",
        610600: "延安市",
        610700: "汉中市",
        610800: "榆林市",
        610900: "安康市",
        611000: "商洛市"
    },
    620000: {
        620100: "兰州市",
        620200: "嘉峪关市",
        620300: "金昌市",
        620400: "白银市",
        620500: "天水市",
        620600: "武威市",
        620700: "张掖市",
        620800: "平凉市",
        620900: "酒泉市",
        621000: "庆阳市",
        621100: "定西市",
        621200: "陇南市",
        622900: "临夏回族自治州",
        623000: "甘南藏族自治州"
    },
    630000: {
        630100: "西宁市",
        630200: "海东市",
        632200: "海北藏族自治州",
        632300: "黄南藏族自治州",
        632500: "海南藏族自治州",
        632600: "果洛藏族自治州",
        632700: "玉树藏族自治州",
        632800: "海西蒙古族藏族自治州"
    },
    640000: {
        640100: "银川市",
        640200: "石嘴山市",
        640300: "吴忠市",
        640400: "固原市",
        640500: "中卫市"
    },
    650000: {
        650100: "乌鲁木齐市",
        650200: "克拉玛依市",
        650400: "吐鲁番市",
        650500: "哈密市",
        652300: "昌吉回族自治州",
        652700: "博尔塔拉蒙古自治州",
        652800: "巴音郭楞蒙古自治州",
        652900: "阿克苏地区",
        653000: "克孜勒苏柯尔克孜自治州",
        653100: "喀什地区",
        653200: "和田地区",
        654000: "伊犁哈萨克自治州",
        654200: "塔城地区",
        654300: "阿勒泰地区"
    },
    710000: {
        710100: "台北市",
        710200: "高雄市",
        710300: "台南市",
        710400: "台中市",
        710500: "金门县",
        710600: "南投县",
        710700: "基隆市",
        710800: "新竹市",
        710900: "嘉义市",
        711100: "新北市",
        711200: "宜兰县",
        711300: "新竹县",
        711400: "桃园县",
        711500: "苗栗县",
        711700: "彰化县",
        711900: "嘉义县",
        712100: "云林县",
        712400: "屏东县",
        712500: "台东县",
        712600: "花莲县",
        712700: "澎湖县",
        712800: "连江县"
    },
    810000: {
        810100: "香港岛",
        810200: "九龙",
        810300: "新界"
    },
    820000: {
        820100: "澳门半岛",
        820200: "离岛"
    },
    900000: {
        900100: "其它市"
    }
};

var areaData = {
    110100: {
        110101: "东城区",
        110102: "西城区",
        110105: "朝阳区",
        110106: "丰台区",
        110107: "石景山区",
        110108: "海淀区",
        110109: "门头沟区",
        110111: "房山区",
        110112: "通州区",
        110113: "顺义区",
        110114: "昌平区",
        110115: "大兴区",
        110116: "怀柔区",
        110117: "平谷区",
        110118: "密云区",
        110119: "延庆区"
    },
    120100: {
        120101: "和平区",
        120102: "河东区",
        120103: "河西区",
        120104: "南开区",
        120105: "河北区",
        120106: "红桥区",
        120110: "东丽区",
        120111: "西青区",
        120112: "津南区",
        120113: "北辰区",
        120114: "武清区",
        120115: "宝坻区",
        120116: "滨海新区",
        120117: "宁河区",
        120118: "静海区",
        120119: "蓟州区"
    },
    130100: {
        130102: "长安区",
        130104: "桥西区",
        130105: "新华区",
        130107: "井陉矿区",
        130108: "裕华区",
        130109: "藁城区",
        130110: "鹿泉区",
        130111: "栾城区",
        130121: "井陉县",
        130123: "正定县",
        130125: "行唐县",
        130126: "灵寿县",
        130127: "高邑县",
        130128: "深泽县",
        130129: "赞皇县",
        130130: "无极县",
        130131: "平山县",
        130132: "元氏县",
        130133: "赵县",
        130171: "石家庄高新技术产业开发区",
        130172: "石家庄循环化工园区",
        130181: "辛集市",
        130183: "晋州市",
        130184: "新乐市"
    },
    130200: {
        130202: "路南区",
        130203: "路北区",
        130204: "古冶区",
        130205: "开平区",
        130207: "丰南区",
        130208: "丰润区",
        130209: "曹妃甸区",
        130224: "滦南县",
        130225: "乐亭县",
        130227: "迁西县",
        130229: "玉田县",
        130271: "河北唐山芦台经济开发区",
        130272: "唐山市汉沽管理区",
        130273: "唐山高新技术产业开发区",
        130274: "河北唐山海港经济开发区",
        130281: "遵化市",
        130283: "迁安市",
        130284: "滦州市"
    },
    130300: {
        130302: "海港区",
        130303: "山海关区",
        130304: "北戴河区",
        130306: "抚宁区",
        130321: "青龙满族自治县",
        130322: "昌黎县",
        130324: "卢龙县",
        130371: "秦皇岛市经济技术开发区",
        130372: "北戴河新区"
    },
    130400: {
        130402: "邯山区",
        130403: "丛台区",
        130404: "复兴区",
        130406: "峰峰矿区",
        130407: "肥乡区",
        130408: "永年区",
        130423: "临漳县",
        130424: "成安县",
        130425: "大名县",
        130426: "涉县",
        130427: "磁县",
        130430: "邱县",
        130431: "鸡泽县",
        130432: "广平县",
        130433: "馆陶县",
        130434: "魏县",
        130435: "曲周县",
        130471: "邯郸经济技术开发区",
        130473: "邯郸冀南新区",
        130481: "武安市"
    },
    130500: {
        130502: "襄都区",
        130503: "信都区",
        130505: "任泽区",
        130506: "南和区",
        130522: "临城县",
        130523: "内丘县",
        130524: "柏乡县",
        130525: "隆尧县",
        130528: "宁晋县",
        130529: "巨鹿县",
        130530: "新河县",
        130531: "广宗县",
        130532: "平乡县",
        130533: "威县",
        130534: "清河县",
        130535: "临西县",
        130571: "河北邢台经济开发区",
        130581: "南宫市",
        130582: "沙河市"
    },
    130600: {
        130602: "竞秀区",
        130606: "莲池区",
        130607: "满城区",
        130608: "清苑区",
        130609: "徐水区",
        130623: "涞水县",
        130624: "阜平县",
        130626: "定兴县",
        130627: "唐县",
        130628: "高阳县",
        130629: "容城县",
        130630: "涞源县",
        130631: "望都县",
        130632: "安新县",
        130633: "易县",
        130634: "曲阳县",
        130635: "蠡县",
        130636: "顺平县",
        130637: "博野县",
        130638: "雄县",
        130671: "保定高新技术产业开发区",
        130672: "保定白沟新城",
        130681: "涿州市",
        130682: "定州市",
        130683: "安国市",
        130684: "高碑店市"
    },
    130700: {
        130702: "桥东区",
        130703: "桥西区",
        130705: "宣化区",
        130706: "下花园区",
        130708: "万全区",
        130709: "崇礼区",
        130722: "张北县",
        130723: "康保县",
        130724: "沽源县",
        130725: "尚义县",
        130726: "蔚县",
        130727: "阳原县",
        130728: "怀安县",
        130730: "怀来县",
        130731: "涿鹿县",
        130732: "赤城县",
        130771: "张家口经济开发区",
        130772: "张家口市察北管理区",
        130773: "张家口市塞北管理区"
    },
    130800: {
        130802: "双桥区",
        130803: "双滦区",
        130804: "鹰手营子矿区",
        130821: "承德县",
        130822: "兴隆县",
        130824: "滦平县",
        130825: "隆化县",
        130826: "丰宁满族自治县",
        130827: "宽城满族自治县",
        130828: "围场满族蒙古族自治县",
        130871: "承德高新技术产业开发区",
        130881: "平泉市"
    },
    130900: {
        130902: "新华区",
        130903: "运河区",
        130921: "沧县",
        130922: "青县",
        130923: "东光县",
        130924: "海兴县",
        130925: "盐山县",
        130926: "肃宁县",
        130927: "南皮县",
        130928: "吴桥县",
        130929: "献县",
        130930: "孟村回族自治县",
        130971: "河北沧州经济开发区",
        130972: "沧州高新技术产业开发区",
        130973: "沧州渤海新区",
        130981: "泊头市",
        130982: "任丘市",
        130983: "黄骅市",
        130984: "河间市"
    },
    131000: {
        131002: "安次区",
        131003: "广阳区",
        131022: "固安县",
        131023: "永清县",
        131024: "香河县",
        131025: "大城县",
        131026: "文安县",
        131028: "大厂回族自治县",
        131071: "廊坊经济技术开发区",
        131081: "霸州市",
        131082: "三河市"
    },
    131100: {
        131102: "桃城区",
        131103: "冀州区",
        131121: "枣强县",
        131122: "武邑县",
        131123: "武强县",
        131124: "饶阳县",
        131125: "安平县",
        131126: "故城县",
        131127: "景县",
        131128: "阜城县",
        131171: "河北衡水高新技术产业开发区",
        131172: "衡水滨湖新区",
        131182: "深州市"
    },
    140100: {
        140105: "小店区",
        140106: "迎泽区",
        140107: "杏花岭区",
        140108: "尖草坪区",
        140109: "万柏林区",
        140110: "晋源区",
        140121: "清徐县",
        140122: "阳曲县",
        140123: "娄烦县",
        140171: "山西转型综合改革示范区",
        140181: "古交市"
    },
    140200: {
        140212: "新荣区",
        140213: "平城区",
        140214: "云冈区",
        140215: "云州区",
        140221: "阳高县",
        140222: "天镇县",
        140223: "广灵县",
        140224: "灵丘县",
        140225: "浑源县",
        140226: "左云县",
        140271: "山西大同经济开发区"
    },
    140300: {
        140302: "城区",
        140303: "矿区",
        140311: "郊区",
        140321: "平定县",
        140322: "盂县"
    },
    140400: {
        140403: "潞州区",
        140404: "上党区",
        140405: "屯留区",
        140406: "潞城区",
        140423: "襄垣县",
        140425: "平顺县",
        140426: "黎城县",
        140427: "壶关县",
        140428: "长子县",
        140429: "武乡县",
        140430: "沁县",
        140431: "沁源县",
        140471: "山西长治高新技术产业园区"
    },
    140500: {
        140502: "城区",
        140521: "沁水县",
        140522: "阳城县",
        140524: "陵川县",
        140525: "泽州县",
        140581: "高平市"
    },
    140600: {
        140602: "朔城区",
        140603: "平鲁区",
        140621: "山阴县",
        140622: "应县",
        140623: "右玉县",
        140671: "山西朔州经济开发区",
        140681: "怀仁市"
    },
    140700: {
        140702: "榆次区",
        140703: "太谷区",
        140721: "榆社县",
        140722: "左权县",
        140723: "和顺县",
        140724: "昔阳县",
        140725: "寿阳县",
        140727: "祁县",
        140728: "平遥县",
        140729: "灵石县",
        140781: "介休市"
    },
    140800: {
        140802: "盐湖区",
        140821: "临猗县",
        140822: "万荣县",
        140823: "闻喜县",
        140824: "稷山县",
        140825: "新绛县",
        140826: "绛县",
        140827: "垣曲县",
        140828: "夏县",
        140829: "平陆县",
        140830: "芮城县",
        140881: "永济市",
        140882: "河津市"
    },
    140900: {
        140902: "忻府区",
        140921: "定襄县",
        140922: "五台县",
        140923: "代县",
        140924: "繁峙县",
        140925: "宁武县",
        140926: "静乐县",
        140927: "神池县",
        140928: "五寨县",
        140929: "岢岚县",
        140930: "河曲县",
        140931: "保德县",
        140932: "偏关县",
        140971: "五台山风景名胜区",
        140981: "原平市"
    },
    141000: {
        141002: "尧都区",
        141021: "曲沃县",
        141022: "翼城县",
        141023: "襄汾县",
        141024: "洪洞县",
        141025: "古县",
        141026: "安泽县",
        141027: "浮山县",
        141028: "吉县",
        141029: "乡宁县",
        141030: "大宁县",
        141031: "隰县",
        141032: "永和县",
        141033: "蒲县",
        141034: "汾西县",
        141081: "侯马市",
        141082: "霍州市"
    },
    141100: {
        141102: "离石区",
        141121: "文水县",
        141122: "交城县",
        141123: "兴县",
        141124: "临县",
        141125: "柳林县",
        141126: "石楼县",
        141127: "岚县",
        141128: "方山县",
        141129: "中阳县",
        141130: "交口县",
        141181: "孝义市",
        141182: "汾阳市"
    },
    150100: {
        150102: "新城区",
        150103: "回民区",
        150104: "玉泉区",
        150105: "赛罕区",
        150121: "土默特左旗",
        150122: "托克托县",
        150123: "和林格尔县",
        150124: "清水河县",
        150125: "武川县",
        150172: "呼和浩特经济技术开发区"
    },
    150200: {
        150202: "东河区",
        150203: "昆都仑区",
        150204: "青山区",
        150205: "石拐区",
        150206: "白云鄂博矿区",
        150207: "九原区",
        150221: "土默特右旗",
        150222: "固阳县",
        150223: "达尔罕茂明安联合旗",
        150271: "包头稀土高新技术产业开发区"
    },
    150300: {
        150302: "海勃湾区",
        150303: "海南区",
        150304: "乌达区"
    },
    150400: {
        150402: "红山区",
        150403: "元宝山区",
        150404: "松山区",
        150421: "阿鲁科尔沁旗",
        150422: "巴林左旗",
        150423: "巴林右旗",
        150424: "林西县",
        150425: "克什克腾旗",
        150426: "翁牛特旗",
        150428: "喀喇沁旗",
        150429: "宁城县",
        150430: "敖汉旗"
    },
    150500: {
        150502: "科尔沁区",
        150521: "科尔沁左翼中旗",
        150522: "科尔沁左翼后旗",
        150523: "开鲁县",
        150524: "库伦旗",
        150525: "奈曼旗",
        150526: "扎鲁特旗",
        150571: "通辽经济技术开发区",
        150581: "霍林郭勒市"
    },
    150600: {
        150602: "东胜区",
        150603: "康巴什区",
        150621: "达拉特旗",
        150622: "准格尔旗",
        150623: "鄂托克前旗",
        150624: "鄂托克旗",
        150625: "杭锦旗",
        150626: "乌审旗",
        150627: "伊金霍洛旗"
    },
    150700: {
        150702: "海拉尔区",
        150703: "扎赉诺尔区",
        150721: "阿荣旗",
        150722: "莫力达瓦达斡尔族自治旗",
        150723: "鄂伦春自治旗",
        150724: "鄂温克族自治旗",
        150725: "陈巴尔虎旗",
        150726: "新巴尔虎左旗",
        150727: "新巴尔虎右旗",
        150781: "满洲里市",
        150782: "牙克石市",
        150783: "扎兰屯市",
        150784: "额尔古纳市",
        150785: "根河市"
    },
    150800: {
        150802: "临河区",
        150821: "五原县",
        150822: "磴口县",
        150823: "乌拉特前旗",
        150824: "乌拉特中旗",
        150825: "乌拉特后旗",
        150826: "杭锦后旗"
    },
    150900: {
        150902: "集宁区",
        150921: "卓资县",
        150922: "化德县",
        150923: "商都县",
        150924: "兴和县",
        150925: "凉城县",
        150926: "察哈尔右翼前旗",
        150927: "察哈尔右翼中旗",
        150928: "察哈尔右翼后旗",
        150929: "四子王旗",
        150981: "丰镇市"
    },
    152200: {
        152201: "乌兰浩特市",
        152202: "阿尔山市",
        152221: "科尔沁右翼前旗",
        152222: "科尔沁右翼中旗",
        152223: "扎赉特旗",
        152224: "突泉县"
    },
    152500: {
        152501: "二连浩特市",
        152502: "锡林浩特市",
        152522: "阿巴嘎旗",
        152523: "苏尼特左旗",
        152524: "苏尼特右旗",
        152525: "东乌珠穆沁旗",
        152526: "西乌珠穆沁旗",
        152527: "太仆寺旗",
        152528: "镶黄旗",
        152529: "正镶白旗",
        152530: "正蓝旗",
        152531: "多伦县",
        152571: "乌拉盖管委会"
    },
    152900: {
        152921: "阿拉善左旗",
        152922: "阿拉善右旗",
        152923: "额济纳旗",
        152971: "内蒙古阿拉善高新技术产业开发区"
    },
    210100: {
        210102: "和平区",
        210103: "沈河区",
        210104: "大东区",
        210105: "皇姑区",
        210106: "铁西区",
        210111: "苏家屯区",
        210112: "浑南区",
        210113: "沈北新区",
        210114: "于洪区",
        210115: "辽中区",
        210123: "康平县",
        210124: "法库县",
        210181: "新民市"
    },
    210200: {
        210202: "中山区",
        210203: "西岗区",
        210204: "沙河口区",
        210211: "甘井子区",
        210212: "旅顺口区",
        210213: "金州区",
        210214: "普兰店区",
        210224: "长海县",
        210281: "瓦房店市",
        210283: "庄河市"
    },
    210300: {
        210302: "铁东区",
        210303: "铁西区",
        210304: "立山区",
        210311: "千山区",
        210321: "台安县",
        210323: "岫岩满族自治县",
        210381: "海城市"
    },
    210400: {
        210402: "新抚区",
        210403: "东洲区",
        210404: "望花区",
        210411: "顺城区",
        210421: "抚顺县",
        210422: "新宾满族自治县",
        210423: "清原满族自治县"
    },
    210500: {
        210502: "平山区",
        210503: "溪湖区",
        210504: "明山区",
        210505: "南芬区",
        210521: "本溪满族自治县",
        210522: "桓仁满族自治县"
    },
    210600: {
        210602: "元宝区",
        210603: "振兴区",
        210604: "振安区",
        210624: "宽甸满族自治县",
        210681: "东港市",
        210682: "凤城市"
    },
    210700: {
        210702: "古塔区",
        210703: "凌河区",
        210711: "太和区",
        210726: "黑山县",
        210727: "义县",
        210781: "凌海市",
        210782: "北镇市"
    },
    210800: {
        210802: "站前区",
        210803: "西市区",
        210804: "鲅鱼圈区",
        210811: "老边区",
        210881: "盖州市",
        210882: "大石桥市"
    },
    210900: {
        210902: "海州区",
        210903: "新邱区",
        210904: "太平区",
        210905: "清河门区",
        210911: "细河区",
        210921: "阜新蒙古族自治县",
        210922: "彰武县"
    },
    211000: {
        211002: "白塔区",
        211003: "文圣区",
        211004: "宏伟区",
        211005: "弓长岭区",
        211011: "太子河区",
        211021: "辽阳县",
        211081: "灯塔市"
    },
    211100: {
        211102: "双台子区",
        211103: "兴隆台区",
        211104: "大洼区",
        211122: "盘山县"
    },
    211200: {
        211202: "银州区",
        211204: "清河区",
        211221: "铁岭县",
        211223: "西丰县",
        211224: "昌图县",
        211281: "调兵山市",
        211282: "开原市"
    },
    211300: {
        211302: "双塔区",
        211303: "龙城区",
        211321: "朝阳县",
        211322: "建平县",
        211324: "喀喇沁左翼蒙古族自治县",
        211381: "北票市",
        211382: "凌源市"
    },
    211400: {
        211402: "连山区",
        211403: "龙港区",
        211404: "南票区",
        211421: "绥中县",
        211422: "建昌县",
        211481: "兴城市"
    },
    220100: {
        220102: "南关区",
        220103: "宽城区",
        220104: "朝阳区",
        220105: "二道区",
        220106: "绿园区",
        220112: "双阳区",
        220113: "九台区",
        220122: "农安县",
        220171: "长春经济技术开发区",
        220172: "长春净月高新技术产业开发区",
        220173: "长春高新技术产业开发区",
        220174: "长春汽车经济技术开发区",
        220182: "榆树市",
        220183: "德惠市",
        220184: "公主岭市"
    },
    220200: {
        220202: "昌邑区",
        220203: "龙潭区",
        220204: "船营区",
        220211: "丰满区",
        220221: "永吉县",
        220271: "吉林经济开发区",
        220272: "吉林高新技术产业开发区",
        220273: "吉林中国新加坡食品区",
        220281: "蛟河市",
        220282: "桦甸市",
        220283: "舒兰市",
        220284: "磐石市"
    },
    220300: {
        220302: "铁西区",
        220303: "铁东区",
        220322: "梨树县",
        220323: "伊通满族自治县",
        220382: "双辽市"
    },
    220400: {
        220402: "龙山区",
        220403: "西安区",
        220421: "东丰县",
        220422: "东辽县"
    },
    220500: {
        220502: "东昌区",
        220503: "二道江区",
        220521: "通化县",
        220523: "辉南县",
        220524: "柳河县",
        220581: "梅河口市",
        220582: "集安市"
    },
    220600: {
        220602: "浑江区",
        220605: "江源区",
        220621: "抚松县",
        220622: "靖宇县",
        220623: "长白朝鲜族自治县",
        220681: "临江市"
    },
    220700: {
        220702: "宁江区",
        220721: "前郭尔罗斯蒙古族自治县",
        220722: "长岭县",
        220723: "乾安县",
        220771: "吉林松原经济开发区",
        220781: "扶余市"
    },
    220800: {
        220802: "洮北区",
        220821: "镇赉县",
        220822: "通榆县",
        220871: "吉林白城经济开发区",
        220881: "洮南市",
        220882: "大安市"
    },
    222400: {
        222401: "延吉市",
        222402: "图们市",
        222403: "敦化市",
        222404: "珲春市",
        222405: "龙井市",
        222406: "和龙市",
        222424: "汪清县",
        222426: "安图县"
    },
    230100: {
        230102: "道里区",
        230103: "南岗区",
        230104: "道外区",
        230108: "平房区",
        230109: "松北区",
        230110: "香坊区",
        230111: "呼兰区",
        230112: "阿城区",
        230113: "双城区",
        230123: "依兰县",
        230124: "方正县",
        230125: "宾县",
        230126: "巴彦县",
        230127: "木兰县",
        230128: "通河县",
        230129: "延寿县",
        230183: "尚志市",
        230184: "五常市"
    },
    230200: {
        230202: "龙沙区",
        230203: "建华区",
        230204: "铁锋区",
        230205: "昂昂溪区",
        230206: "富拉尔基区",
        230207: "碾子山区",
        230208: "梅里斯达斡尔族区",
        230221: "龙江县",
        230223: "依安县",
        230224: "泰来县",
        230225: "甘南县",
        230227: "富裕县",
        230229: "克山县",
        230230: "克东县",
        230231: "拜泉县",
        230281: "讷河市"
    },
    230300: {
        230302: "鸡冠区",
        230303: "恒山区",
        230304: "滴道区",
        230305: "梨树区",
        230306: "城子河区",
        230307: "麻山区",
        230321: "鸡东县",
        230381: "虎林市",
        230382: "密山市"
    },
    230400: {
        230402: "向阳区",
        230403: "工农区",
        230404: "南山区",
        230405: "兴安区",
        230406: "东山区",
        230407: "兴山区",
        230421: "萝北县",
        230422: "绥滨县"
    },
    230500: {
        230502: "尖山区",
        230503: "岭东区",
        230505: "四方台区",
        230506: "宝山区",
        230521: "集贤县",
        230522: "友谊县",
        230523: "宝清县",
        230524: "饶河县"
    },
    230600: {
        230602: "萨尔图区",
        230603: "龙凤区",
        230604: "让胡路区",
        230605: "红岗区",
        230606: "大同区",
        230621: "肇州县",
        230622: "肇源县",
        230623: "林甸县",
        230624: "杜尔伯特蒙古族自治县",
        230671: "大庆高新技术产业开发区"
    },
    230700: {
        230717: "伊美区",
        230718: "乌翠区",
        230719: "友好区",
        230722: "嘉荫县",
        230723: "汤旺县",
        230724: "丰林县",
        230725: "大箐山县",
        230726: "南岔县",
        230751: "金林区",
        230781: "铁力市"
    },
    230800: {
        230803: "向阳区",
        230804: "前进区",
        230805: "东风区",
        230811: "郊区",
        230822: "桦南县",
        230826: "桦川县",
        230828: "汤原县",
        230881: "同江市",
        230882: "富锦市",
        230883: "抚远市"
    },
    230900: {
        230902: "新兴区",
        230903: "桃山区",
        230904: "茄子河区",
        230921: "勃利县"
    },
    231000: {
        231002: "东安区",
        231003: "阳明区",
        231004: "爱民区",
        231005: "西安区",
        231025: "林口县",
        231071: "牡丹江经济技术开发区",
        231081: "绥芬河市",
        231083: "海林市",
        231084: "宁安市",
        231085: "穆棱市",
        231086: "东宁市"
    },
    231100: {
        231102: "爱辉区",
        231123: "逊克县",
        231124: "孙吴县",
        231181: "北安市",
        231182: "五大连池市",
        231183: "嫩江市"
    },
    231200: {
        231202: "北林区",
        231221: "望奎县",
        231222: "兰西县",
        231223: "青冈县",
        231224: "庆安县",
        231225: "明水县",
        231226: "绥棱县",
        231281: "安达市",
        231282: "肇东市",
        231283: "海伦市"
    },
    232700: {
        232701: "漠河市",
        232721: "呼玛县",
        232722: "塔河县",
        232761: "加格达奇区",
        232762: "松岭区",
        232763: "新林区",
        232764: "呼中区"
    },
    310100: {
        310101: "黄浦区",
        310104: "徐汇区",
        310105: "长宁区",
        310106: "静安区",
        310107: "普陀区",
        310109: "虹口区",
        310110: "杨浦区",
        310112: "闵行区",
        310113: "宝山区",
        310114: "嘉定区",
        310115: "浦东新区",
        310116: "金山区",
        310117: "松江区",
        310118: "青浦区",
        310120: "奉贤区",
        310151: "崇明区"
    },
    320100: {
        320102: "玄武区",
        320104: "秦淮区",
        320105: "建邺区",
        320106: "鼓楼区",
        320111: "浦口区",
        320113: "栖霞区",
        320114: "雨花台区",
        320115: "江宁区",
        320116: "六合区",
        320117: "溧水区",
        320118: "高淳区"
    },
    320200: {
        320205: "锡山区",
        320206: "惠山区",
        320211: "滨湖区",
        320213: "梁溪区",
        320214: "新吴区",
        320281: "江阴市",
        320282: "宜兴市"
    },
    320300: {
        320302: "鼓楼区",
        320303: "云龙区",
        320305: "贾汪区",
        320311: "泉山区",
        320312: "铜山区",
        320321: "丰县",
        320322: "沛县",
        320324: "睢宁县",
        320371: "徐州经济技术开发区",
        320381: "新沂市",
        320382: "邳州市"
    },
    320400: {
        320402: "天宁区",
        320404: "钟楼区",
        320411: "新北区",
        320412: "武进区",
        320413: "金坛区",
        320481: "溧阳市"
    },
    320500: {
        320505: "虎丘区",
        320506: "吴中区",
        320507: "相城区",
        320508: "姑苏区",
        320509: "吴江区",
        320571: "苏州工业园区",
        320581: "常熟市",
        320582: "张家港市",
        320583: "昆山市",
        320585: "太仓市"
    },
    320600: {
        320612: "通州区",
        320613: "崇川区",
        320614: "海门区",
        320623: "如东县",
        320671: "南通经济技术开发区",
        320681: "启东市",
        320682: "如皋市",
        320685: "海安市"
    },
    320700: {
        320703: "连云区",
        320706: "海州区",
        320707: "赣榆区",
        320722: "东海县",
        320723: "灌云县",
        320724: "灌南县",
        320771: "连云港经济技术开发区",
        320772: "连云港高新技术产业开发区"
    },
    320800: {
        320803: "淮安区",
        320804: "淮阴区",
        320812: "清江浦区",
        320813: "洪泽区",
        320826: "涟水县",
        320830: "盱眙县",
        320831: "金湖县",
        320871: "淮安经济技术开发区"
    },
    320900: {
        320902: "亭湖区",
        320903: "盐都区",
        320904: "大丰区",
        320921: "响水县",
        320922: "滨海县",
        320923: "阜宁县",
        320924: "射阳县",
        320925: "建湖县",
        320971: "盐城经济技术开发区",
        320981: "东台市"
    },
    321000: {
        321002: "广陵区",
        321003: "邗江区",
        321012: "江都区",
        321023: "宝应县",
        321071: "扬州经济技术开发区",
        321081: "仪征市",
        321084: "高邮市"
    },
    321100: {
        321102: "京口区",
        321111: "润州区",
        321112: "丹徒区",
        321171: "镇江新区",
        321181: "丹阳市",
        321182: "扬中市",
        321183: "句容市"
    },
    321200: {
        321202: "海陵区",
        321203: "高港区",
        321204: "姜堰区",
        321271: "泰州医药高新技术产业开发区",
        321281: "兴化市",
        321282: "靖江市",
        321283: "泰兴市"
    },
    321300: {
        321302: "宿城区",
        321311: "宿豫区",
        321322: "沭阳县",
        321323: "泗阳县",
        321324: "泗洪县",
        321371: "宿迁经济技术开发区"
    },
    330100: {
        330102: "上城区",
        330105: "拱墅区",
        330106: "西湖区",
        330108: "滨江区",
        330109: "萧山区",
        330110: "余杭区",
        330111: "富阳区",
        330112: "临安区",
        330113: "临平区",
        330114: "钱塘区",
        330122: "桐庐县",
        330127: "淳安县",
        330182: "建德市"
    },
    330200: {
        330203: "海曙区",
        330205: "江北区",
        330206: "北仑区",
        330211: "镇海区",
        330212: "鄞州区",
        330213: "奉化区",
        330225: "象山县",
        330226: "宁海县",
        330281: "余姚市",
        330282: "慈溪市"
    },
    330300: {
        330302: "鹿城区",
        330303: "龙湾区",
        330304: "瓯海区",
        330305: "洞头区",
        330324: "永嘉县",
        330326: "平阳县",
        330327: "苍南县",
        330328: "文成县",
        330329: "泰顺县",
        330371: "温州经济技术开发区",
        330381: "瑞安市",
        330382: "乐清市",
        330383: "龙港市"
    },
    330400: {
        330402: "南湖区",
        330411: "秀洲区",
        330421: "嘉善县",
        330424: "海盐县",
        330481: "海宁市",
        330482: "平湖市",
        330483: "桐乡市"
    },
    330500: {
        330502: "吴兴区",
        330503: "南浔区",
        330521: "德清县",
        330522: "长兴县",
        330523: "安吉县"
    },
    330600: {
        330602: "越城区",
        330603: "柯桥区",
        330604: "上虞区",
        330624: "新昌县",
        330681: "诸暨市",
        330683: "嵊州市"
    },
    330700: {
        330702: "婺城区",
        330703: "金东区",
        330723: "武义县",
        330726: "浦江县",
        330727: "磐安县",
        330781: "兰溪市",
        330782: "义乌市",
        330783: "东阳市",
        330784: "永康市"
    },
    330800: {
        330802: "柯城区",
        330803: "衢江区",
        330822: "常山县",
        330824: "开化县",
        330825: "龙游县",
        330881: "江山市"
    },
    330900: {
        330902: "定海区",
        330903: "普陀区",
        330921: "岱山县",
        330922: "嵊泗县"
    },
    331000: {
        331002: "椒江区",
        331003: "黄岩区",
        331004: "路桥区",
        331022: "三门县",
        331023: "天台县",
        331024: "仙居县",
        331081: "温岭市",
        331082: "临海市",
        331083: "玉环市"
    },
    331100: {
        331102: "莲都区",
        331121: "青田县",
        331122: "缙云县",
        331123: "遂昌县",
        331124: "松阳县",
        331125: "云和县",
        331126: "庆元县",
        331127: "景宁畲族自治县",
        331181: "龙泉市"
    },
    340100: {
        340102: "瑶海区",
        340103: "庐阳区",
        340104: "蜀山区",
        340111: "包河区",
        340121: "长丰县",
        340122: "肥东县",
        340123: "肥西县",
        340124: "庐江县",
        340171: "合肥高新技术产业开发区",
        340172: "合肥经济技术开发区",
        340173: "合肥新站高新技术产业开发区",
        340181: "巢湖市"
    },
    340200: {
        340202: "镜湖区",
        340207: "鸠江区",
        340209: "弋江区",
        340210: "湾沚区",
        340212: "繁昌区",
        340223: "南陵县",
        340271: "芜湖经济技术开发区",
        340272: "安徽芜湖三山经济开发区",
        340281: "无为市"
    },
    340300: {
        340302: "龙子湖区",
        340303: "蚌山区",
        340304: "禹会区",
        340311: "淮上区",
        340321: "怀远县",
        340322: "五河县",
        340323: "固镇县",
        340371: "蚌埠市高新技术开发区",
        340372: "蚌埠市经济开发区"
    },
    340400: {
        340402: "大通区",
        340403: "田家庵区",
        340404: "谢家集区",
        340405: "八公山区",
        340406: "潘集区",
        340421: "凤台县",
        340422: "寿县"
    },
    340500: {
        340503: "花山区",
        340504: "雨山区",
        340506: "博望区",
        340521: "当涂县",
        340522: "含山县",
        340523: "和县"
    },
    340600: {
        340602: "杜集区",
        340603: "相山区",
        340604: "烈山区",
        340621: "濉溪县"
    },
    340700: {
        340705: "铜官区",
        340706: "义安区",
        340711: "郊区",
        340722: "枞阳县"
    },
    340800: {
        340802: "迎江区",
        340803: "大观区",
        340811: "宜秀区",
        340822: "怀宁县",
        340825: "太湖县",
        340826: "宿松县",
        340827: "望江县",
        340828: "岳西县",
        340871: "安徽安庆经济开发区",
        340881: "桐城市",
        340882: "潜山市"
    },
    341000: {
        341002: "屯溪区",
        341003: "黄山区",
        341004: "徽州区",
        341021: "歙县",
        341022: "休宁县",
        341023: "黟县",
        341024: "祁门县"
    },
    341100: {
        341102: "琅琊区",
        341103: "南谯区",
        341122: "来安县",
        341124: "全椒县",
        341125: "定远县",
        341126: "凤阳县",
        341171: "中新苏滁高新技术产业开发区",
        341172: "滁州经济技术开发区",
        341181: "天长市",
        341182: "明光市"
    },
    341200: {
        341202: "颍州区",
        341203: "颍东区",
        341204: "颍泉区",
        341221: "临泉县",
        341222: "太和县",
        341225: "阜南县",
        341226: "颍上县",
        341271: "阜阳合肥现代产业园区",
        341272: "阜阳经济技术开发区",
        341282: "界首市"
    },
    341300: {
        341302: "埇桥区",
        341321: "砀山县",
        341322: "萧县",
        341323: "灵璧县",
        341324: "泗县",
        341371: "宿州马鞍山现代产业园区",
        341372: "宿州经济技术开发区"
    },
    341500: {
        341502: "金安区",
        341503: "裕安区",
        341504: "叶集区",
        341522: "霍邱县",
        341523: "舒城县",
        341524: "金寨县",
        341525: "霍山县"
    },
    341600: {
        341602: "谯城区",
        341621: "涡阳县",
        341622: "蒙城县",
        341623: "利辛县"
    },
    341700: {
        341702: "贵池区",
        341721: "东至县",
        341722: "石台县",
        341723: "青阳县"
    },
    341800: {
        341802: "宣州区",
        341821: "郎溪县",
        341823: "泾县",
        341824: "绩溪县",
        341825: "旌德县",
        341871: "宣城市经济开发区",
        341881: "宁国市",
        341882: "广德市"
    },
    350100: {
        350102: "鼓楼区",
        350103: "台江区",
        350104: "仓山区",
        350105: "马尾区",
        350111: "晋安区",
        350112: "长乐区",
        350121: "闽侯县",
        350122: "连江县",
        350123: "罗源县",
        350124: "闽清县",
        350125: "永泰县",
        350128: "平潭县",
        350181: "福清市"
    },
    350200: {
        350203: "思明区",
        350205: "海沧区",
        350206: "湖里区",
        350211: "集美区",
        350212: "同安区",
        350213: "翔安区"
    },
    350300: {
        350302: "城厢区",
        350303: "涵江区",
        350304: "荔城区",
        350305: "秀屿区",
        350322: "仙游县"
    },
    350400: {
        350404: "三元区",
        350405: "沙县区",
        350421: "明溪县",
        350423: "清流县",
        350424: "宁化县",
        350425: "大田县",
        350426: "尤溪县",
        350428: "将乐县",
        350429: "泰宁县",
        350430: "建宁县",
        350481: "永安市"
    },
    350500: {
        350502: "鲤城区",
        350503: "丰泽区",
        350504: "洛江区",
        350505: "泉港区",
        350521: "惠安县",
        350524: "安溪县",
        350525: "永春县",
        350526: "德化县",
        350527: "金门县",
        350581: "石狮市",
        350582: "晋江市",
        350583: "南安市"
    },
    350600: {
        350602: "芗城区",
        350603: "龙文区",
        350604: "龙海区",
        350605: "长泰区",
        350622: "云霄县",
        350623: "漳浦县",
        350624: "诏安县",
        350626: "东山县",
        350627: "南靖县",
        350628: "平和县",
        350629: "华安县"
    },
    350700: {
        350702: "延平区",
        350703: "建阳区",
        350721: "顺昌县",
        350722: "浦城县",
        350723: "光泽县",
        350724: "松溪县",
        350725: "政和县",
        350781: "邵武市",
        350782: "武夷山市",
        350783: "建瓯市"
    },
    350800: {
        350802: "新罗区",
        350803: "永定区",
        350821: "长汀县",
        350823: "上杭县",
        350824: "武平县",
        350825: "连城县",
        350881: "漳平市"
    },
    350900: {
        350902: "蕉城区",
        350921: "霞浦县",
        350922: "古田县",
        350923: "屏南县",
        350924: "寿宁县",
        350925: "周宁县",
        350926: "柘荣县",
        350981: "福安市",
        350982: "福鼎市"
    },
    360100: {
        360102: "东湖区",
        360103: "西湖区",
        360104: "青云谱区",
        360111: "青山湖区",
        360112: "新建区",
        360113: "红谷滩区",
        360121: "南昌县",
        360123: "安义县",
        360124: "进贤县"
    },
    360200: {
        360202: "昌江区",
        360203: "珠山区",
        360222: "浮梁县",
        360281: "乐平市"
    },
    360300: {
        360302: "安源区",
        360313: "湘东区",
        360321: "莲花县",
        360322: "上栗县",
        360323: "芦溪县"
    },
    360400: {
        360402: "濂溪区",
        360403: "浔阳区",
        360404: "柴桑区",
        360423: "武宁县",
        360424: "修水县",
        360425: "永修县",
        360426: "德安县",
        360428: "都昌县",
        360429: "湖口县",
        360430: "彭泽县",
        360481: "瑞昌市",
        360482: "共青城市",
        360483: "庐山市"
    },
    360500: {
        360502: "渝水区",
        360521: "分宜县"
    },
    360600: {
        360602: "月湖区",
        360603: "余江区",
        360681: "贵溪市"
    },
    360700: {
        360702: "章贡区",
        360703: "南康区",
        360704: "赣县区",
        360722: "信丰县",
        360723: "大余县",
        360724: "上犹县",
        360725: "崇义县",
        360726: "安远县",
        360728: "定南县",
        360729: "全南县",
        360730: "宁都县",
        360731: "于都县",
        360732: "兴国县",
        360733: "会昌县",
        360734: "寻乌县",
        360735: "石城县",
        360781: "瑞金市",
        360783: "龙南市"
    },
    360800: {
        360802: "吉州区",
        360803: "青原区",
        360821: "吉安县",
        360822: "吉水县",
        360823: "峡江县",
        360824: "新干县",
        360825: "永丰县",
        360826: "泰和县",
        360827: "遂川县",
        360828: "万安县",
        360829: "安福县",
        360830: "永新县",
        360881: "井冈山市"
    },
    360900: {
        360902: "袁州区",
        360921: "奉新县",
        360922: "万载县",
        360923: "上高县",
        360924: "宜丰县",
        360925: "靖安县",
        360926: "铜鼓县",
        360981: "丰城市",
        360982: "樟树市",
        360983: "高安市"
    },
    361000: {
        361002: "临川区",
        361003: "东乡区",
        361021: "南城县",
        361022: "黎川县",
        361023: "南丰县",
        361024: "崇仁县",
        361025: "乐安县",
        361026: "宜黄县",
        361027: "金溪县",
        361028: "资溪县",
        361030: "广昌县"
    },
    361100: {
        361102: "信州区",
        361103: "广丰区",
        361104: "广信区",
        361123: "玉山县",
        361124: "铅山县",
        361125: "横峰县",
        361126: "弋阳县",
        361127: "余干县",
        361128: "鄱阳县",
        361129: "万年县",
        361130: "婺源县",
        361181: "德兴市"
    },
    370100: {
        370102: "历下区",
        370103: "市中区",
        370104: "槐荫区",
        370105: "天桥区",
        370112: "历城区",
        370113: "长清区",
        370114: "章丘区",
        370115: "济阳区",
        370116: "莱芜区",
        370117: "钢城区",
        370124: "平阴县",
        370126: "商河县",
        370171: "济南高新技术产业开发区"
    },
    370200: {
        370202: "市南区",
        370203: "市北区",
        370211: "黄岛区",
        370212: "崂山区",
        370213: "李沧区",
        370214: "城阳区",
        370215: "即墨区",
        370271: "青岛高新技术产业开发区",
        370281: "胶州市",
        370283: "平度市",
        370285: "莱西市"
    },
    370300: {
        370302: "淄川区",
        370303: "张店区",
        370304: "博山区",
        370305: "临淄区",
        370306: "周村区",
        370321: "桓台县",
        370322: "高青县",
        370323: "沂源县"
    },
    370400: {
        370402: "市中区",
        370403: "薛城区",
        370404: "峄城区",
        370405: "台儿庄区",
        370406: "山亭区",
        370481: "滕州市"
    },
    370500: {
        370502: "东营区",
        370503: "河口区",
        370505: "垦利区",
        370522: "利津县",
        370523: "广饶县",
        370571: "东营经济技术开发区",
        370572: "东营港经济开发区"
    },
    370600: {
        370602: "芝罘区",
        370611: "福山区",
        370612: "牟平区",
        370613: "莱山区",
        370614: "蓬莱区",
        370671: "烟台高新技术产业开发区",
        370672: "烟台经济技术开发区",
        370681: "龙口市",
        370682: "莱阳市",
        370683: "莱州市",
        370685: "招远市",
        370686: "栖霞市",
        370687: "海阳市"
    },
    370700: {
        370702: "潍城区",
        370703: "寒亭区",
        370704: "坊子区",
        370705: "奎文区",
        370724: "临朐县",
        370725: "昌乐县",
        370772: "潍坊滨海经济技术开发区",
        370781: "青州市",
        370782: "诸城市",
        370783: "寿光市",
        370784: "安丘市",
        370785: "高密市",
        370786: "昌邑市"
    },
    370800: {
        370811: "任城区",
        370812: "兖州区",
        370826: "微山县",
        370827: "鱼台县",
        370828: "金乡县",
        370829: "嘉祥县",
        370830: "汶上县",
        370831: "泗水县",
        370832: "梁山县",
        370871: "济宁高新技术产业开发区",
        370881: "曲阜市",
        370883: "邹城市"
    },
    370900: {
        370902: "泰山区",
        370911: "岱岳区",
        370921: "宁阳县",
        370923: "东平县",
        370982: "新泰市",
        370983: "肥城市"
    },
    371000: {
        371002: "环翠区",
        371003: "文登区",
        371071: "威海火炬高技术产业开发区",
        371072: "威海经济技术开发区",
        371073: "威海临港经济技术开发区",
        371082: "荣成市",
        371083: "乳山市"
    },
    371100: {
        371102: "东港区",
        371103: "岚山区",
        371121: "五莲县",
        371122: "莒县",
        371171: "日照经济技术开发区"
    },
    371300: {
        371302: "兰山区",
        371311: "罗庄区",
        371312: "河东区",
        371321: "沂南县",
        371322: "郯城县",
        371323: "沂水县",
        371324: "兰陵县",
        371325: "费县",
        371326: "平邑县",
        371327: "莒南县",
        371328: "蒙阴县",
        371329: "临沭县",
        371371: "临沂高新技术产业开发区"
    },
    371400: {
        371402: "德城区",
        371403: "陵城区",
        371422: "宁津县",
        371423: "庆云县",
        371424: "临邑县",
        371425: "齐河县",
        371426: "平原县",
        371427: "夏津县",
        371428: "武城县",
        371471: "德州经济技术开发区",
        371472: "德州运河经济开发区",
        371481: "乐陵市",
        371482: "禹城市"
    },
    371500: {
        371502: "东昌府区",
        371503: "茌平区",
        371521: "阳谷县",
        371522: "莘县",
        371524: "东阿县",
        371525: "冠县",
        371526: "高唐县",
        371581: "临清市"
    },
    371600: {
        371602: "滨城区",
        371603: "沾化区",
        371621: "惠民县",
        371622: "阳信县",
        371623: "无棣县",
        371625: "博兴县",
        371681: "邹平市"
    },
    371700: {
        371702: "牡丹区",
        371703: "定陶区",
        371721: "曹县",
        371722: "单县",
        371723: "成武县",
        371724: "巨野县",
        371725: "郓城县",
        371726: "鄄城县",
        371728: "东明县",
        371771: "菏泽经济技术开发区",
        371772: "菏泽高新技术开发区"
    },
    410100: {
        410102: "中原区",
        410103: "二七区",
        410104: "管城回族区",
        410105: "金水区",
        410106: "上街区",
        410108: "惠济区",
        410122: "中牟县",
        410171: "郑州经济技术开发区",
        410172: "郑州高新技术产业开发区",
        410173: "郑州航空港经济综合实验区",
        410181: "巩义市",
        410182: "荥阳市",
        410183: "新密市",
        410184: "新郑市",
        410185: "登封市"
    },
    410200: {
        410202: "龙亭区",
        410203: "顺河回族区",
        410204: "鼓楼区",
        410205: "禹王台区",
        410212: "祥符区",
        410221: "杞县",
        410222: "通许县",
        410223: "尉氏县",
        410225: "兰考县"
    },
    410300: {
        410302: "老城区",
        410303: "西工区",
        410304: "瀍河回族区",
        410305: "涧西区",
        410307: "偃师区",
        410308: "孟津区",
        410311: "洛龙区",
        410323: "新安县",
        410324: "栾川县",
        410325: "嵩县",
        410326: "汝阳县",
        410327: "宜阳县",
        410328: "洛宁县",
        410329: "伊川县",
        410371: "洛阳高新技术产业开发区"
    },
    410400: {
        410402: "新华区",
        410403: "卫东区",
        410404: "石龙区",
        410411: "湛河区",
        410421: "宝丰县",
        410422: "叶县",
        410423: "鲁山县",
        410425: "郏县",
        410471: "平顶山高新技术产业开发区",
        410472: "平顶山市城乡一体化示范区",
        410481: "舞钢市",
        410482: "汝州市"
    },
    410500: {
        410502: "文峰区",
        410503: "北关区",
        410505: "殷都区",
        410506: "龙安区",
        410522: "安阳县",
        410523: "汤阴县",
        410526: "滑县",
        410527: "内黄县",
        410571: "安阳高新技术产业开发区",
        410581: "林州市"
    },
    410600: {
        410602: "鹤山区",
        410603: "山城区",
        410611: "淇滨区",
        410621: "浚县",
        410622: "淇县",
        410671: "鹤壁经济技术开发区"
    },
    410700: {
        410702: "红旗区",
        410703: "卫滨区",
        410704: "凤泉区",
        410711: "牧野区",
        410721: "新乡县",
        410724: "获嘉县",
        410725: "原阳县",
        410726: "延津县",
        410727: "封丘县",
        410771: "新乡高新技术产业开发区",
        410772: "新乡经济技术开发区",
        410773: "新乡市平原城乡一体化示范区",
        410781: "卫辉市",
        410782: "辉县市",
        410783: "长垣市"
    },
    410800: {
        410802: "解放区",
        410803: "中站区",
        410804: "马村区",
        410811: "山阳区",
        410821: "修武县",
        410822: "博爱县",
        410823: "武陟县",
        410825: "温县",
        410871: "焦作城乡一体化示范区",
        410882: "沁阳市",
        410883: "孟州市"
    },
    410900: {
        410902: "华龙区",
        410922: "清丰县",
        410923: "南乐县",
        410926: "范县",
        410927: "台前县",
        410928: "濮阳县",
        410971: "河南濮阳工业园区",
        410972: "濮阳经济技术开发区"
    },
    411000: {
        411002: "魏都区",
        411003: "建安区",
        411024: "鄢陵县",
        411025: "襄城县",
        411071: "许昌经济技术开发区",
        411081: "禹州市",
        411082: "长葛市"
    },
    411100: {
        411102: "源汇区",
        411103: "郾城区",
        411104: "召陵区",
        411121: "舞阳县",
        411122: "临颍县",
        411171: "漯河经济技术开发区"
    },
    411200: {
        411202: "湖滨区",
        411203: "陕州区",
        411221: "渑池县",
        411224: "卢氏县",
        411271: "河南三门峡经济开发区",
        411281: "义马市",
        411282: "灵宝市"
    },
    411300: {
        411302: "宛城区",
        411303: "卧龙区",
        411321: "南召县",
        411322: "方城县",
        411323: "西峡县",
        411324: "镇平县",
        411325: "内乡县",
        411326: "淅川县",
        411327: "社旗县",
        411328: "唐河县",
        411329: "新野县",
        411330: "桐柏县",
        411371: "南阳高新技术产业开发区",
        411372: "南阳市城乡一体化示范区",
        411381: "邓州市"
    },
    411400: {
        411402: "梁园区",
        411403: "睢阳区",
        411421: "民权县",
        411422: "睢县",
        411423: "宁陵县",
        411424: "柘城县",
        411425: "虞城县",
        411426: "夏邑县",
        411471: "豫东综合物流产业聚集区",
        411472: "河南商丘经济开发区",
        411481: "永城市"
    },
    411500: {
        411502: "浉河区",
        411503: "平桥区",
        411521: "罗山县",
        411522: "光山县",
        411523: "新县",
        411524: "商城县",
        411525: "固始县",
        411526: "潢川县",
        411527: "淮滨县",
        411528: "息县",
        411571: "信阳高新技术产业开发区"
    },
    411600: {
        411602: "川汇区",
        411603: "淮阳区",
        411621: "扶沟县",
        411622: "西华县",
        411623: "商水县",
        411624: "沈丘县",
        411625: "郸城县",
        411627: "太康县",
        411628: "鹿邑县",
        411671: "河南周口经济开发区",
        411681: "项城市"
    },
    411700: {
        411702: "驿城区",
        411721: "西平县",
        411722: "上蔡县",
        411723: "平舆县",
        411724: "正阳县",
        411725: "确山县",
        411726: "泌阳县",
        411727: "汝南县",
        411728: "遂平县",
        411729: "新蔡县",
        411771: "河南驻马店经济开发区"
    },
    419000: {
        419001: "济源市"
    },
    420100: {
        420102: "江岸区",
        420103: "江汉区",
        420104: "硚口区",
        420105: "汉阳区",
        420106: "武昌区",
        420107: "青山区",
        420111: "洪山区",
        420112: "东西湖区",
        420113: "汉南区",
        420114: "蔡甸区",
        420115: "江夏区",
        420116: "黄陂区",
        420117: "新洲区"
    },
    420200: {
        420202: "黄石港区",
        420203: "西塞山区",
        420204: "下陆区",
        420205: "铁山区",
        420222: "阳新县",
        420281: "大冶市"
    },
    420300: {
        420302: "茅箭区",
        420303: "张湾区",
        420304: "郧阳区",
        420322: "郧西县",
        420323: "竹山县",
        420324: "竹溪县",
        420325: "房县",
        420381: "丹江口市"
    },
    420500: {
        420502: "西陵区",
        420503: "伍家岗区",
        420504: "点军区",
        420505: "猇亭区",
        420506: "夷陵区",
        420525: "远安县",
        420526: "兴山县",
        420527: "秭归县",
        420528: "长阳土家族自治县",
        420529: "五峰土家族自治县",
        420581: "宜都市",
        420582: "当阳市",
        420583: "枝江市"
    },
    420600: {
        420602: "襄城区",
        420606: "樊城区",
        420607: "襄州区",
        420624: "南漳县",
        420625: "谷城县",
        420626: "保康县",
        420682: "老河口市",
        420683: "枣阳市",
        420684: "宜城市"
    },
    420700: {
        420702: "梁子湖区",
        420703: "华容区",
        420704: "鄂城区"
    },
    420800: {
        420802: "东宝区",
        420804: "掇刀区",
        420822: "沙洋县",
        420881: "钟祥市",
        420882: "京山市"
    },
    420900: {
        420902: "孝南区",
        420921: "孝昌县",
        420922: "大悟县",
        420923: "云梦县",
        420981: "应城市",
        420982: "安陆市",
        420984: "汉川市"
    },
    421000: {
        421002: "沙市区",
        421003: "荆州区",
        421022: "公安县",
        421024: "江陵县",
        421071: "荆州经济技术开发区",
        421081: "石首市",
        421083: "洪湖市",
        421087: "松滋市",
        421088: "监利市"
    },
    421100: {
        421102: "黄州区",
        421121: "团风县",
        421122: "红安县",
        421123: "罗田县",
        421124: "英山县",
        421125: "浠水县",
        421126: "蕲春县",
        421127: "黄梅县",
        421171: "龙感湖管理区",
        421181: "麻城市",
        421182: "武穴市"
    },
    421200: {
        421202: "咸安区",
        421221: "嘉鱼县",
        421222: "通城县",
        421223: "崇阳县",
        421224: "通山县",
        421281: "赤壁市"
    },
    421300: {
        421303: "曾都区",
        421321: "随县",
        421381: "广水市"
    },
    422800: {
        422801: "恩施市",
        422802: "利川市",
        422822: "建始县",
        422823: "巴东县",
        422825: "宣恩县",
        422826: "咸丰县",
        422827: "来凤县",
        422828: "鹤峰县"
    },
    429000: {
        429004: "仙桃市",
        429005: "潜江市",
        429006: "天门市",
        429021: "神农架林区"
    },
    430100: {
        430102: "芙蓉区",
        430103: "天心区",
        430104: "岳麓区",
        430105: "开福区",
        430111: "雨花区",
        430112: "望城区",
        430121: "长沙县",
        430181: "浏阳市",
        430182: "宁乡市"
    },
    430200: {
        430202: "荷塘区",
        430203: "芦淞区",
        430204: "石峰区",
        430211: "天元区",
        430212: "渌口区",
        430223: "攸县",
        430224: "茶陵县",
        430225: "炎陵县",
        430271: "云龙示范区",
        430281: "醴陵市"
    },
    430300: {
        430302: "雨湖区",
        430304: "岳塘区",
        430321: "湘潭县",
        430371: "湖南湘潭高新技术产业园区",
        430372: "湘潭昭山示范区",
        430373: "湘潭九华示范区",
        430381: "湘乡市",
        430382: "韶山市"
    },
    430400: {
        430405: "珠晖区",
        430406: "雁峰区",
        430407: "石鼓区",
        430408: "蒸湘区",
        430412: "南岳区",
        430421: "衡阳县",
        430422: "衡南县",
        430423: "衡山县",
        430424: "衡东县",
        430426: "祁东县",
        430471: "衡阳综合保税区",
        430472: "湖南衡阳高新技术产业园区",
        430473: "湖南衡阳松木经济开发区",
        430481: "耒阳市",
        430482: "常宁市"
    },
    430500: {
        430502: "双清区",
        430503: "大祥区",
        430511: "北塔区",
        430522: "新邵县",
        430523: "邵阳县",
        430524: "隆回县",
        430525: "洞口县",
        430527: "绥宁县",
        430528: "新宁县",
        430529: "城步苗族自治县",
        430581: "武冈市",
        430582: "邵东市"
    },
    430600: {
        430602: "岳阳楼区",
        430603: "云溪区",
        430611: "君山区",
        430621: "岳阳县",
        430623: "华容县",
        430624: "湘阴县",
        430626: "平江县",
        430671: "岳阳市屈原管理区",
        430681: "汨罗市",
        430682: "临湘市"
    },
    430700: {
        430702: "武陵区",
        430703: "鼎城区",
        430721: "安乡县",
        430722: "汉寿县",
        430723: "澧县",
        430724: "临澧县",
        430725: "桃源县",
        430726: "石门县",
        430771: "常德市西洞庭管理区",
        430781: "津市市"
    },
    430800: {
        430802: "永定区",
        430811: "武陵源区",
        430821: "慈利县",
        430822: "桑植县"
    },
    430900: {
        430902: "资阳区",
        430903: "赫山区",
        430921: "南县",
        430922: "桃江县",
        430923: "安化县",
        430971: "益阳市大通湖管理区",
        430972: "湖南益阳高新技术产业园区",
        430981: "沅江市"
    },
    431000: {
        431002: "北湖区",
        431003: "苏仙区",
        431021: "桂阳县",
        431022: "宜章县",
        431023: "永兴县",
        431024: "嘉禾县",
        431025: "临武县",
        431026: "汝城县",
        431027: "桂东县",
        431028: "安仁县",
        431081: "资兴市"
    },
    431100: {
        431102: "零陵区",
        431103: "冷水滩区",
        431122: "东安县",
        431123: "双牌县",
        431124: "道县",
        431125: "江永县",
        431126: "宁远县",
        431127: "蓝山县",
        431128: "新田县",
        431129: "江华瑶族自治县",
        431171: "永州经济技术开发区",
        431173: "永州市回龙圩管理区",
        431181: "祁阳市"
    },
    431200: {
        431202: "鹤城区",
        431221: "中方县",
        431222: "沅陵县",
        431223: "辰溪县",
        431224: "溆浦县",
        431225: "会同县",
        431226: "麻阳苗族自治县",
        431227: "新晃侗族自治县",
        431228: "芷江侗族自治县",
        431229: "靖州苗族侗族自治县",
        431230: "通道侗族自治县",
        431271: "怀化市洪江管理区",
        431281: "洪江市"
    },
    431300: {
        431302: "娄星区",
        431321: "双峰县",
        431322: "新化县",
        431381: "冷水江市",
        431382: "涟源市"
    },
    433100: {
        433101: "吉首市",
        433122: "泸溪县",
        433123: "凤凰县",
        433124: "花垣县",
        433125: "保靖县",
        433126: "古丈县",
        433127: "永顺县",
        433130: "龙山县"
    },
    440100: {
        440103: "荔湾区",
        440104: "越秀区",
        440105: "海珠区",
        440106: "天河区",
        440111: "白云区",
        440112: "黄埔区",
        440113: "番禺区",
        440114: "花都区",
        440115: "南沙区",
        440117: "从化区",
        440118: "增城区"
    },
    440200: {
        440203: "武江区",
        440204: "浈江区",
        440205: "曲江区",
        440222: "始兴县",
        440224: "仁化县",
        440229: "翁源县",
        440232: "乳源瑶族自治县",
        440233: "新丰县",
        440281: "乐昌市",
        440282: "南雄市"
    },
    440300: {
        440303: "罗湖区",
        440304: "福田区",
        440305: "南山区",
        440306: "宝安区",
        440307: "龙岗区",
        440308: "盐田区",
        440309: "龙华区",
        440310: "坪山区",
        440311: "光明区"
    },
    440400: {
        440402: "香洲区",
        440403: "斗门区",
        440404: "金湾区"
    },
    440500: {
        440507: "龙湖区",
        440511: "金平区",
        440512: "濠江区",
        440513: "潮阳区",
        440514: "潮南区",
        440515: "澄海区",
        440523: "南澳县"
    },
    440600: {
        440604: "禅城区",
        440605: "南海区",
        440606: "顺德区",
        440607: "三水区",
        440608: "高明区"
    },
    440700: {
        440703: "蓬江区",
        440704: "江海区",
        440705: "新会区",
        440781: "台山市",
        440783: "开平市",
        440784: "鹤山市",
        440785: "恩平市"
    },
    440800: {
        440802: "赤坎区",
        440803: "霞山区",
        440804: "坡头区",
        440811: "麻章区",
        440823: "遂溪县",
        440825: "徐闻县",
        440881: "廉江市",
        440882: "雷州市",
        440883: "吴川市"
    },
    440900: {
        440902: "茂南区",
        440904: "电白区",
        440981: "高州市",
        440982: "化州市",
        440983: "信宜市"
    },
    441200: {
        441202: "端州区",
        441203: "鼎湖区",
        441204: "高要区",
        441223: "广宁县",
        441224: "怀集县",
        441225: "封开县",
        441226: "德庆县",
        441284: "四会市"
    },
    441300: {
        441302: "惠城区",
        441303: "惠阳区",
        441322: "博罗县",
        441323: "惠东县",
        441324: "龙门县"
    },
    441400: {
        441402: "梅江区",
        441403: "梅县区",
        441422: "大埔县",
        441423: "丰顺县",
        441424: "五华县",
        441426: "平远县",
        441427: "蕉岭县",
        441481: "兴宁市"
    },
    441500: {
        441502: "城区",
        441521: "海丰县",
        441523: "陆河县",
        441581: "陆丰市"
    },
    441600: {
        441602: "源城区",
        441621: "紫金县",
        441622: "龙川县",
        441623: "连平县",
        441624: "和平县",
        441625: "东源县"
    },
    441700: {
        441702: "江城区",
        441704: "阳东区",
        441721: "阳西县",
        441781: "阳春市"
    },
    441800: {
        441802: "清城区",
        441803: "清新区",
        441821: "佛冈县",
        441823: "阳山县",
        441825: "连山壮族瑶族自治县",
        441826: "连南瑶族自治县",
        441881: "英德市",
        441882: "连州市"
    },
    441900: {
        44190011: "常平镇",
        441900003: "东城街道",
        441900004: "南城街道",
        441900005: "万江街道",
        441900006: "莞城街道",
        441900101: "石碣镇",
        441900102: "石龙镇",
        441900103: "茶山镇",
        441900104: "石排镇",
        441900105: "企石镇",
        441900106: "横沥镇",
        441900107: "桥头镇",
        441900108: "谢岗镇",
        441900109: "东坑镇",
        441900111: "寮步镇",
        441900112: "樟木头镇",
        441900113: "大朗镇",
        441900114: "黄江镇",
        441900115: "清溪镇",
        441900116: "塘厦镇",
        441900117: "凤岗镇",
        441900118: "大岭山镇",
        441900119: "长安镇",
        441900121: "虎门镇",
        441900122: "厚街镇",
        441900123: "沙田镇",
        441900124: "道滘镇",
        441900125: "洪梅镇",
        441900126: "麻涌镇",
        441900127: "望牛墩镇",
        441900128: "中堂镇",
        441900129: "高埗镇",
        441900401: "松山湖",
        441900402: "东莞港",
        441900403: "东莞生态园",
        441900404: "东莞滨海湾新区"
    },
    442000: {
        44200011: "横栏镇",
        442000001: "石岐街道",
        442000002: "东区街道",
        442000003: "中山港街道",
        442000004: "西区街道",
        442000005: "南区街道",
        442000006: "五桂山街道",
        442000007: "民众街道",
        442000008: "南朗街道",
        442000101: "黄圃镇",
        442000103: "东凤镇",
        442000105: "古镇镇",
        442000106: "沙溪镇",
        442000107: "坦洲镇",
        442000108: "港口镇",
        442000109: "三角镇",
        442000111: "南头镇",
        442000112: "阜沙镇",
        442000114: "三乡镇",
        442000115: "板芙镇",
        442000116: "大涌镇",
        442000117: "神湾镇",
        442000118: "小榄镇"
    },
    445100: {
        445102: "湘桥区",
        445103: "潮安区",
        445122: "饶平县"
    },
    445200: {
        445202: "榕城区",
        445203: "揭东区",
        445222: "揭西县",
        445224: "惠来县",
        445281: "普宁市"
    },
    445300: {
        445302: "云城区",
        445303: "云安区",
        445321: "新兴县",
        445322: "郁南县",
        445381: "罗定市"
    },
    450100: {
        450102: "兴宁区",
        450103: "青秀区",
        450105: "江南区",
        450107: "西乡塘区",
        450108: "良庆区",
        450109: "邕宁区",
        450110: "武鸣区",
        450123: "隆安县",
        450124: "马山县",
        450125: "上林县",
        450126: "宾阳县",
        450181: "横州市"
    },
    450200: {
        450202: "城中区",
        450203: "鱼峰区",
        450204: "柳南区",
        450205: "柳北区",
        450206: "柳江区",
        450222: "柳城县",
        450223: "鹿寨县",
        450224: "融安县",
        450225: "融水苗族自治县",
        450226: "三江侗族自治县"
    },
    450300: {
        450302: "秀峰区",
        450303: "叠彩区",
        450304: "象山区",
        450305: "七星区",
        450311: "雁山区",
        450312: "临桂区",
        450321: "阳朔县",
        450323: "灵川县",
        450324: "全州县",
        450325: "兴安县",
        450326: "永福县",
        450327: "灌阳县",
        450328: "龙胜各族自治县",
        450329: "资源县",
        450330: "平乐县",
        450332: "恭城瑶族自治县",
        450381: "荔浦市"
    },
    450400: {
        450403: "万秀区",
        450405: "长洲区",
        450406: "龙圩区",
        450421: "苍梧县",
        450422: "藤县",
        450423: "蒙山县",
        450481: "岑溪市"
    },
    450500: {
        450502: "海城区",
        450503: "银海区",
        450512: "铁山港区",
        450521: "合浦县"
    },
    450600: {
        450602: "港口区",
        450603: "防城区",
        450621: "上思县",
        450681: "东兴市"
    },
    450700: {
        450702: "钦南区",
        450703: "钦北区",
        450721: "灵山县",
        450722: "浦北县"
    },
    450800: {
        450802: "港北区",
        450803: "港南区",
        450804: "覃塘区",
        450821: "平南县",
        450881: "桂平市"
    },
    450900: {
        450902: "玉州区",
        450903: "福绵区",
        450921: "容县",
        450922: "陆川县",
        450923: "博白县",
        450924: "兴业县",
        450981: "北流市"
    },
    451000: {
        451002: "右江区",
        451003: "田阳区",
        451022: "田东县",
        451024: "德保县",
        451026: "那坡县",
        451027: "凌云县",
        451028: "乐业县",
        451029: "田林县",
        451030: "西林县",
        451031: "隆林各族自治县",
        451081: "靖西市",
        451082: "平果市"
    },
    451100: {
        451102: "八步区",
        451103: "平桂区",
        451121: "昭平县",
        451122: "钟山县",
        451123: "富川瑶族自治县"
    },
    451200: {
        451202: "金城江区",
        451203: "宜州区",
        451221: "南丹县",
        451222: "天峨县",
        451223: "凤山县",
        451224: "东兰县",
        451225: "罗城仫佬族自治县",
        451226: "环江毛南族自治县",
        451227: "巴马瑶族自治县",
        451228: "都安瑶族自治县",
        451229: "大化瑶族自治县"
    },
    451300: {
        451302: "兴宾区",
        451321: "忻城县",
        451322: "象州县",
        451323: "武宣县",
        451324: "金秀瑶族自治县",
        451381: "合山市"
    },
    451400: {
        451402: "江州区",
        451421: "扶绥县",
        451422: "宁明县",
        451423: "龙州县",
        451424: "大新县",
        451425: "天等县",
        451481: "凭祥市"
    },
    460100: {
        460105: "秀英区",
        460106: "龙华区",
        460107: "琼山区",
        460108: "美兰区"
    },
    460200: {
        460202: "海棠区",
        460203: "吉阳区",
        460204: "天涯区",
        460205: "崖州区"
    },
    460300: {
        460321: "西沙群岛",
        460322: "南沙群岛",
        460323: "中沙群岛的岛礁及其海域"
    },
    460400: {
        4604001: "那大镇",
        4604005: "华南热作学院",
        460400101: "和庆镇",
        460400102: "南丰镇",
        460400103: "大成镇",
        460400104: "雅星镇",
        460400105: "兰洋镇",
        460400106: "光村镇",
        460400107: "木棠镇",
        460400108: "海头镇",
        460400109: "峨蔓镇",
        460400111: "王五镇",
        460400112: "白马井镇",
        460400113: "中和镇",
        460400114: "排浦镇",
        460400115: "东成镇",
        460400116: "新州镇",
        460400499: "洋浦经济开发区"
    },
    500100: {
        500101: "万州区",
        500102: "涪陵区",
        500103: "渝中区",
        500104: "大渡口区",
        500105: "江北区",
        500106: "沙坪坝区",
        500107: "九龙坡区",
        500108: "南岸区",
        500109: "北碚区",
        500110: "綦江区",
        500111: "大足区",
        500112: "渝北区",
        500113: "巴南区",
        500114: "黔江区",
        500115: "长寿区",
        500116: "江津区",
        500117: "合川区",
        500118: "永川区",
        500119: "南川区",
        500120: "璧山区",
        500151: "铜梁区",
        500152: "潼南区",
        500153: "荣昌区",
        500154: "开州区",
        500155: "梁平区",
        500156: "武隆区"
    },
    500200: {
        500229: "城口县",
        500230: "丰都县",
        500231: "垫江县",
        500233: "忠县",
        500235: "云阳县",
        500236: "奉节县",
        500237: "巫山县",
        500238: "巫溪县",
        500240: "石柱土家族自治县",
        500241: "秀山土家族苗族自治县",
        500242: "酉阳土家族苗族自治县",
        500243: "彭水苗族土家族自治县"
    },
    510100: {
        510104: "锦江区",
        510105: "青羊区",
        510106: "金牛区",
        510107: "武侯区",
        510108: "成华区",
        510112: "龙泉驿区",
        510113: "青白江区",
        510114: "新都区",
        510115: "温江区",
        510116: "双流区",
        510117: "郫都区",
        510118: "新津区",
        510121: "金堂县",
        510129: "大邑县",
        510131: "蒲江县",
        510156: "天府新区",
        510181: "都江堰市",
        510182: "彭州市",
        510183: "邛崃市",
        510184: "崇州市",
        510185: "简阳市"
    },
    510300: {
        510302: "自流井区",
        510303: "贡井区",
        510304: "大安区",
        510311: "沿滩区",
        510321: "荣县",
        510322: "富顺县"
    },
    510400: {
        510402: "东区",
        510403: "西区",
        510411: "仁和区",
        510421: "米易县",
        510422: "盐边县"
    },
    510500: {
        510502: "江阳区",
        510503: "纳溪区",
        510504: "龙马潭区",
        510521: "泸县",
        510522: "合江县",
        510524: "叙永县",
        510525: "古蔺县"
    },
    510600: {
        510603: "旌阳区",
        510604: "罗江区",
        510623: "中江县",
        510681: "广汉市",
        510682: "什邡市",
        510683: "绵竹市"
    },
    510700: {
        510703: "涪城区",
        510704: "游仙区",
        510705: "安州区",
        510722: "三台县",
        510723: "盐亭县",
        510725: "梓潼县",
        510726: "北川羌族自治县",
        510727: "平武县",
        510781: "江油市"
    },
    510800: {
        510802: "利州区",
        510811: "昭化区",
        510812: "朝天区",
        510821: "旺苍县",
        510822: "青川县",
        510823: "剑阁县",
        510824: "苍溪县"
    },
    510900: {
        510903: "船山区",
        510904: "安居区",
        510921: "蓬溪县",
        510923: "大英县",
        510981: "射洪市"
    },
    511000: {
        511002: "市中区",
        511011: "东兴区",
        511024: "威远县",
        511025: "资中县",
        511071: "内江经济开发区",
        511083: "隆昌市"
    },
    511100: {
        511102: "市中区",
        511111: "沙湾区",
        511112: "五通桥区",
        511113: "金口河区",
        511123: "犍为县",
        511124: "井研县",
        511126: "夹江县",
        511129: "沐川县",
        511132: "峨边彝族自治县",
        511133: "马边彝族自治县",
        511181: "峨眉山市"
    },
    511300: {
        511302: "顺庆区",
        511303: "高坪区",
        511304: "嘉陵区",
        511321: "南部县",
        511322: "营山县",
        511323: "蓬安县",
        511324: "仪陇县",
        511325: "西充县",
        511381: "阆中市"
    },
    511400: {
        511402: "东坡区",
        511403: "彭山区",
        511421: "仁寿县",
        511423: "洪雅县",
        511424: "丹棱县",
        511425: "青神县"
    },
    511500: {
        511502: "翠屏区",
        511503: "南溪区",
        511504: "叙州区",
        511523: "江安县",
        511524: "长宁县",
        511525: "高县",
        511526: "珙县",
        511527: "筠连县",
        511528: "兴文县",
        511529: "屏山县"
    },
    511600: {
        511602: "广安区",
        511603: "前锋区",
        511621: "岳池县",
        511622: "武胜县",
        511623: "邻水县",
        511681: "华蓥市"
    },
    511700: {
        511702: "通川区",
        511703: "达川区",
        511722: "宣汉县",
        511723: "开江县",
        511724: "大竹县",
        511725: "渠县",
        511771: "达州经济开发区",
        511781: "万源市"
    },
    511800: {
        511802: "雨城区",
        511803: "名山区",
        511822: "荥经县",
        511823: "汉源县",
        511824: "石棉县",
        511825: "天全县",
        511826: "芦山县",
        511827: "宝兴县"
    },
    511900: {
        511902: "巴州区",
        511903: "恩阳区",
        511921: "通江县",
        511922: "南江县",
        511923: "平昌县",
        511971: "巴中经济开发区"
    },
    512000: {
        512002: "雁江区",
        512021: "安岳县",
        512022: "乐至县"
    },
    513200: {
        513201: "马尔康市",
        513221: "汶川县",
        513222: "理县",
        513223: "茂县",
        513224: "松潘县",
        513225: "九寨沟县",
        513226: "金川县",
        513227: "小金县",
        513228: "黑水县",
        513230: "壤塘县",
        513231: "阿坝县",
        513232: "若尔盖县",
        513233: "红原县"
    },
    513300: {
        513301: "康定市",
        513322: "泸定县",
        513323: "丹巴县",
        513324: "九龙县",
        513325: "雅江县",
        513326: "道孚县",
        513327: "炉霍县",
        513328: "甘孜县",
        513329: "新龙县",
        513330: "德格县",
        513331: "白玉县",
        513332: "石渠县",
        513333: "色达县",
        513334: "理塘县",
        513335: "巴塘县",
        513336: "乡城县",
        513337: "稻城县",
        513338: "得荣县"
    },
    513400: {
        513401: "西昌市",
        513402: "会理市",
        513422: "木里藏族自治县",
        513423: "盐源县",
        513424: "德昌县",
        513426: "会东县",
        513427: "宁南县",
        513428: "普格县",
        513429: "布拖县",
        513430: "金阳县",
        513431: "昭觉县",
        513432: "喜德县",
        513433: "冕宁县",
        513434: "越西县",
        513435: "甘洛县",
        513436: "美姑县",
        513437: "雷波县"
    },
    520100: {
        520102: "南明区",
        520103: "云岩区",
        520111: "花溪区",
        520112: "乌当区",
        520113: "白云区",
        520115: "观山湖区",
        520121: "开阳县",
        520122: "息烽县",
        520123: "修文县",
        520181: "清镇市"
    },
    520200: {
        520201: "钟山区",
        520203: "六枝特区",
        520204: "水城区",
        520281: "盘州市"
    },
    520300: {
        520302: "红花岗区",
        520303: "汇川区",
        520304: "播州区",
        520322: "桐梓县",
        520323: "绥阳县",
        520324: "正安县",
        520325: "道真仡佬族苗族自治县",
        520326: "务川仡佬族苗族自治县",
        520327: "凤冈县",
        520328: "湄潭县",
        520329: "余庆县",
        520330: "习水县",
        520381: "赤水市",
        520382: "仁怀市"
    },
    520400: {
        520402: "西秀区",
        520403: "平坝区",
        520422: "普定县",
        520423: "镇宁布依族苗族自治县",
        520424: "关岭布依族苗族自治县",
        520425: "紫云苗族布依族自治县"
    },
    520500: {
        520502: "七星关区",
        520521: "大方县",
        520523: "金沙县",
        520524: "织金县",
        520525: "纳雍县",
        520526: "威宁彝族回族苗族自治县",
        520527: "赫章县",
        520581: "黔西市"
    },
    520600: {
        520602: "碧江区",
        520603: "万山区",
        520621: "江口县",
        520622: "玉屏侗族自治县",
        520623: "石阡县",
        520624: "思南县",
        520625: "印江土家族苗族自治县",
        520626: "德江县",
        520627: "沿河土家族自治县",
        520628: "松桃苗族自治县"
    },
    522300: {
        522301: "兴义市",
        522302: "兴仁市",
        522323: "普安县",
        522324: "晴隆县",
        522325: "贞丰县",
        522326: "望谟县",
        522327: "册亨县",
        522328: "安龙县"
    },
    522600: {
        522601: "凯里市",
        522622: "黄平县",
        522623: "施秉县",
        522624: "三穗县",
        522625: "镇远县",
        522626: "岑巩县",
        522627: "天柱县",
        522628: "锦屏县",
        522629: "剑河县",
        522630: "台江县",
        522631: "黎平县",
        522632: "榕江县",
        522633: "从江县",
        522634: "雷山县",
        522635: "麻江县",
        522636: "丹寨县"
    },
    522700: {
        522701: "都匀市",
        522702: "福泉市",
        522722: "荔波县",
        522723: "贵定县",
        522725: "瓮安县",
        522726: "独山县",
        522727: "平塘县",
        522728: "罗甸县",
        522729: "长顺县",
        522730: "龙里县",
        522731: "惠水县",
        522732: "三都水族自治县"
    },
    530100: {
        530102: "五华区",
        530103: "盘龙区",
        530111: "官渡区",
        530112: "西山区",
        530113: "东川区",
        530114: "呈贡区",
        530115: "晋宁区",
        530124: "富民县",
        530125: "宜良县",
        530126: "石林彝族自治县",
        530127: "嵩明县",
        530128: "禄劝彝族苗族自治县",
        530129: "寻甸回族彝族自治县",
        530181: "安宁市"
    },
    530300: {
        530302: "麒麟区",
        530303: "沾益区",
        530304: "马龙区",
        530322: "陆良县",
        530323: "师宗县",
        530324: "罗平县",
        530325: "富源县",
        530326: "会泽县",
        530381: "宣威市"
    },
    530400: {
        530402: "红塔区",
        530403: "江川区",
        530423: "通海县",
        530424: "华宁县",
        530425: "易门县",
        530426: "峨山彝族自治县",
        530427: "新平彝族傣族自治县",
        530428: "元江哈尼族彝族傣族自治县",
        530481: "澄江市"
    },
    530500: {
        530502: "隆阳区",
        530521: "施甸县",
        530523: "龙陵县",
        530524: "昌宁县",
        530581: "腾冲市"
    },
    530600: {
        530602: "昭阳区",
        530621: "鲁甸县",
        530622: "巧家县",
        530623: "盐津县",
        530624: "大关县",
        530625: "永善县",
        530626: "绥江县",
        530627: "镇雄县",
        530628: "彝良县",
        530629: "威信县",
        530681: "水富市"
    },
    530700: {
        530702: "古城区",
        530721: "玉龙纳西族自治县",
        530722: "永胜县",
        530723: "华坪县",
        530724: "宁蒗彝族自治县"
    },
    530800: {
        530802: "思茅区",
        530821: "宁洱哈尼族彝族自治县",
        530822: "墨江哈尼族自治县",
        530823: "景东彝族自治县",
        530824: "景谷傣族彝族自治县",
        530825: "镇沅彝族哈尼族拉祜族自治县",
        530826: "江城哈尼族彝族自治县",
        530827: "孟连傣族拉祜族佤族自治县",
        530828: "澜沧拉祜族自治县",
        530829: "西盟佤族自治县"
    },
    530900: {
        530902: "临翔区",
        530921: "凤庆县",
        530922: "云县",
        530923: "永德县",
        530924: "镇康县",
        530925: "双江拉祜族佤族布朗族傣族自治县",
        530926: "耿马傣族佤族自治县",
        530927: "沧源佤族自治县"
    },
    532300: {
        532301: "楚雄市",
        532302: "禄丰市",
        532322: "双柏县",
        532323: "牟定县",
        532324: "南华县",
        532325: "姚安县",
        532326: "大姚县",
        532327: "永仁县",
        532328: "元谋县",
        532329: "武定县"
    },
    532500: {
        532501: "个旧市",
        532502: "开远市",
        532503: "蒙自市",
        532504: "弥勒市",
        532523: "屏边苗族自治县",
        532524: "建水县",
        532525: "石屏县",
        532527: "泸西县",
        532528: "元阳县",
        532529: "红河县",
        532530: "金平苗族瑶族傣族自治县",
        532531: "绿春县",
        532532: "河口瑶族自治县"
    },
    532600: {
        532601: "文山市",
        532622: "砚山县",
        532623: "西畴县",
        532624: "麻栗坡县",
        532625: "马关县",
        532626: "丘北县",
        532627: "广南县",
        532628: "富宁县"
    },
    532800: {
        532801: "景洪市",
        532822: "勐海县",
        532823: "勐腊县"
    },
    532900: {
        532901: "大理市",
        532922: "漾濞彝族自治县",
        532923: "祥云县",
        532924: "宾川县",
        532925: "弥渡县",
        532926: "南涧彝族自治县",
        532927: "巍山彝族回族自治县",
        532928: "永平县",
        532929: "云龙县",
        532930: "洱源县",
        532931: "剑川县",
        532932: "鹤庆县"
    },
    533100: {
        533102: "瑞丽市",
        533103: "芒市",
        533122: "梁河县",
        533123: "盈江县",
        533124: "陇川县"
    },
    533300: {
        533301: "泸水市",
        533323: "福贡县",
        533324: "贡山独龙族怒族自治县",
        533325: "兰坪白族普米族自治县"
    },
    533400: {
        533401: "香格里拉市",
        533422: "德钦县",
        533423: "维西傈僳族自治县"
    },
    540100: {
        540102: "城关区",
        540103: "堆龙德庆区",
        540104: "达孜区",
        540121: "林周县",
        540122: "当雄县",
        540123: "尼木县",
        540124: "曲水县",
        540127: "墨竹工卡县",
        540171: "格尔木藏青工业园区",
        540172: "拉萨经济技术开发区",
        540173: "西藏文化旅游创意园区",
        540174: "达孜工业园区"
    },
    540200: {
        540202: "桑珠孜区",
        540221: "南木林县",
        540222: "江孜县",
        540223: "定日县",
        540224: "萨迦县",
        540225: "拉孜县",
        540226: "昂仁县",
        540227: "谢通门县",
        540228: "白朗县",
        540229: "仁布县",
        540230: "康马县",
        540231: "定结县",
        540232: "仲巴县",
        540233: "亚东县",
        540234: "吉隆县",
        540235: "聂拉木县",
        540236: "萨嘎县",
        540237: "岗巴县"
    },
    540300: {
        540302: "卡若区",
        540321: "江达县",
        540322: "贡觉县",
        540323: "类乌齐县",
        540324: "丁青县",
        540325: "察雅县",
        540326: "八宿县",
        540327: "左贡县",
        540328: "芒康县",
        540329: "洛隆县",
        540330: "边坝县"
    },
    540400: {
        540402: "巴宜区",
        540421: "工布江达县",
        540422: "米林县",
        540423: "墨脱县",
        540424: "波密县",
        540425: "察隅县",
        540426: "朗县"
    },
    540500: {
        540502: "乃东区",
        540521: "扎囊县",
        540522: "贡嘎县",
        540523: "桑日县",
        540524: "琼结县",
        540525: "曲松县",
        540526: "措美县",
        540527: "洛扎县",
        540528: "加查县",
        540529: "隆子县",
        540530: "错那县",
        540531: "浪卡子县"
    },
    540600: {
        540602: "色尼区",
        540621: "嘉黎县",
        540622: "比如县",
        540623: "聂荣县",
        540624: "安多县",
        540625: "申扎县",
        540626: "索县",
        540627: "班戈县",
        540628: "巴青县",
        540629: "尼玛县",
        540630: "双湖县"
    },
    542500: {
        542521: "普兰县",
        542522: "札达县",
        542523: "噶尔县",
        542524: "日土县",
        542525: "革吉县",
        542526: "改则县",
        542527: "措勤县"
    },
    610100: {
        610102: "新城区",
        610103: "碑林区",
        610104: "莲湖区",
        610111: "灞桥区",
        610112: "未央区",
        610113: "雁塔区",
        610114: "阎良区",
        610115: "临潼区",
        610116: "长安区",
        610117: "高陵区",
        610118: "鄠邑区",
        610122: "蓝田县",
        610124: "周至县"
    },
    610200: {
        610202: "王益区",
        610203: "印台区",
        610204: "耀州区",
        610222: "宜君县"
    },
    610300: {
        610302: "渭滨区",
        610303: "金台区",
        610304: "陈仓区",
        610305: "凤翔区",
        610323: "岐山县",
        610324: "扶风县",
        610326: "眉县",
        610327: "陇县",
        610328: "千阳县",
        610329: "麟游县",
        610330: "凤县",
        610331: "太白县"
    },
    610400: {
        610402: "秦都区",
        610403: "杨陵区",
        610404: "渭城区",
        610422: "三原县",
        610423: "泾阳县",
        610424: "乾县",
        610425: "礼泉县",
        610426: "永寿县",
        610428: "长武县",
        610429: "旬邑县",
        610430: "淳化县",
        610431: "武功县",
        610481: "兴平市",
        610482: "彬州市"
    },
    610500: {
        610502: "临渭区",
        610503: "华州区",
        610522: "潼关县",
        610523: "大荔县",
        610524: "合阳县",
        610525: "澄城县",
        610526: "蒲城县",
        610527: "白水县",
        610528: "富平县",
        610581: "韩城市",
        610582: "华阴市"
    },
    610600: {
        610602: "宝塔区",
        610603: "安塞区",
        610621: "延长县",
        610622: "延川县",
        610625: "志丹县",
        610626: "吴起县",
        610627: "甘泉县",
        610628: "富县",
        610629: "洛川县",
        610630: "宜川县",
        610631: "黄龙县",
        610632: "黄陵县",
        610681: "子长市"
    },
    610700: {
        610702: "汉台区",
        610703: "南郑区",
        610722: "城固县",
        610723: "洋县",
        610724: "西乡县",
        610725: "勉县",
        610726: "宁强县",
        610727: "略阳县",
        610728: "镇巴县",
        610729: "留坝县",
        610730: "佛坪县"
    },
    610800: {
        610802: "榆阳区",
        610803: "横山区",
        610822: "府谷县",
        610824: "靖边县",
        610825: "定边县",
        610826: "绥德县",
        610827: "米脂县",
        610828: "佳县",
        610829: "吴堡县",
        610830: "清涧县",
        610831: "子洲县",
        610881: "神木市"
    },
    610900: {
        610902: "汉滨区",
        610921: "汉阴县",
        610922: "石泉县",
        610923: "宁陕县",
        610924: "紫阳县",
        610925: "岚皋县",
        610926: "平利县",
        610927: "镇坪县",
        610929: "白河县",
        610981: "旬阳市"
    },
    611000: {
        611002: "商州区",
        611021: "洛南县",
        611022: "丹凤县",
        611023: "商南县",
        611024: "山阳县",
        611025: "镇安县",
        611026: "柞水县"
    },
    620100: {
        620102: "城关区",
        620103: "七里河区",
        620104: "西固区",
        620105: "安宁区",
        620111: "红古区",
        620121: "永登县",
        620122: "皋兰县",
        620123: "榆中县",
        620171: "兰州新区"
    },
    620200: {
        6202011: "新城镇",
        620201001: "雄关街道",
        620201002: "钢城街道",
        620201101: "峪泉镇",
        620201102: "文殊镇"
    },
    620300: {
        620302: "金川区",
        620321: "永昌县"
    },
    620400: {
        620402: "白银区",
        620403: "平川区",
        620421: "靖远县",
        620422: "会宁县",
        620423: "景泰县"
    },
    620500: {
        620502: "秦州区",
        620503: "麦积区",
        620521: "清水县",
        620522: "秦安县",
        620523: "甘谷县",
        620524: "武山县",
        620525: "张家川回族自治县"
    },
    620600: {
        620602: "凉州区",
        620621: "民勤县",
        620622: "古浪县",
        620623: "天祝藏族自治县"
    },
    620700: {
        620702: "甘州区",
        620721: "肃南裕固族自治县",
        620722: "民乐县",
        620723: "临泽县",
        620724: "高台县",
        620725: "山丹县"
    },
    620800: {
        620802: "崆峒区",
        620821: "泾川县",
        620822: "灵台县",
        620823: "崇信县",
        620825: "庄浪县",
        620826: "静宁县",
        620881: "华亭市"
    },
    620900: {
        620902: "肃州区",
        620921: "金塔县",
        620922: "瓜州县",
        620923: "肃北蒙古族自治县",
        620924: "阿克塞哈萨克族自治县",
        620981: "玉门市",
        620982: "敦煌市"
    },
    621000: {
        621002: "西峰区",
        621021: "庆城县",
        621022: "环县",
        621023: "华池县",
        621024: "合水县",
        621025: "正宁县",
        621026: "宁县",
        621027: "镇原县"
    },
    621100: {
        621102: "安定区",
        621121: "通渭县",
        621122: "陇西县",
        621123: "渭源县",
        621124: "临洮县",
        621125: "漳县",
        621126: "岷县"
    },
    621200: {
        621202: "武都区",
        621221: "成县",
        621222: "文县",
        621223: "宕昌县",
        621224: "康县",
        621225: "西和县",
        621226: "礼县",
        621227: "徽县",
        621228: "两当县"
    },
    622900: {
        622901: "临夏市",
        622921: "临夏县",
        622922: "康乐县",
        622923: "永靖县",
        622924: "广河县",
        622925: "和政县",
        622926: "东乡族自治县",
        622927: "积石山保安族东乡族撒拉族自治县"
    },
    623000: {
        623001: "合作市",
        623021: "临潭县",
        623022: "卓尼县",
        623023: "舟曲县",
        623024: "迭部县",
        623025: "玛曲县",
        623026: "碌曲县",
        623027: "夏河县"
    },
    630100: {
        630102: "城东区",
        630103: "城中区",
        630104: "城西区",
        630105: "城北区",
        630106: "湟中区",
        630121: "大通回族土族自治县",
        630123: "湟源县"
    },
    630200: {
        630202: "乐都区",
        630203: "平安区",
        630222: "民和回族土族自治县",
        630223: "互助土族自治县",
        630224: "化隆回族自治县",
        630225: "循化撒拉族自治县"
    },
    632200: {
        632221: "门源回族自治县",
        632222: "祁连县",
        632223: "海晏县",
        632224: "刚察县"
    },
    632300: {
        632301: "同仁市",
        632322: "尖扎县",
        632323: "泽库县",
        632324: "河南蒙古族自治县"
    },
    632500: {
        632521: "共和县",
        632522: "同德县",
        632523: "贵德县",
        632524: "兴海县",
        632525: "贵南县"
    },
    632600: {
        632621: "玛沁县",
        632622: "班玛县",
        632623: "甘德县",
        632624: "达日县",
        632625: "久治县",
        632626: "玛多县"
    },
    632700: {
        632701: "玉树市",
        632722: "杂多县",
        632723: "称多县",
        632724: "治多县",
        632725: "囊谦县",
        632726: "曲麻莱县"
    },
    632800: {
        632801: "格尔木市",
        632802: "德令哈市",
        632803: "茫崖市",
        632821: "乌兰县",
        632822: "都兰县",
        632823: "天峻县",
        632857: "大柴旦行政委员会"
    },
    640100: {
        640104: "兴庆区",
        640105: "西夏区",
        640106: "金凤区",
        640121: "永宁县",
        640122: "贺兰县",
        640181: "灵武市"
    },
    640200: {
        640202: "大武口区",
        640205: "惠农区",
        640221: "平罗县"
    },
    640300: {
        640302: "利通区",
        640303: "红寺堡区",
        640323: "盐池县",
        640324: "同心县",
        640381: "青铜峡市"
    },
    640400: {
        640402: "原州区",
        640422: "西吉县",
        640423: "隆德县",
        640424: "泾源县",
        640425: "彭阳县"
    },
    640500: {
        640502: "沙坡头区",
        640521: "中宁县",
        640522: "海原县"
    },
    650100: {
        650102: "天山区",
        650103: "沙依巴克区",
        650104: "新市区",
        650105: "水磨沟区",
        650106: "头屯河区",
        650107: "达坂城区",
        650109: "米东区",
        650121: "乌鲁木齐县"
    },
    650200: {
        650202: "独山子区",
        650203: "克拉玛依区",
        650204: "白碱滩区",
        650205: "乌尔禾区"
    },
    650400: {
        650402: "高昌区",
        650421: "鄯善县",
        650422: "托克逊县"
    },
    650500: {
        650502: "伊州区",
        650521: "巴里坤哈萨克自治县",
        650522: "伊吾县"
    },
    652300: {
        652301: "昌吉市",
        652302: "阜康市",
        652323: "呼图壁县",
        652324: "玛纳斯县",
        652325: "奇台县",
        652327: "吉木萨尔县",
        652328: "木垒哈萨克自治县"
    },
    652700: {
        652701: "博乐市",
        652702: "阿拉山口市",
        652722: "精河县",
        652723: "温泉县"
    },
    652800: {
        652801: "库尔勒市",
        652822: "轮台县",
        652823: "尉犁县",
        652824: "若羌县",
        652825: "且末县",
        652826: "焉耆回族自治县",
        652827: "和静县",
        652828: "和硕县",
        652829: "博湖县",
        652871: "库尔勒经济技术开发区"
    },
    652900: {
        652901: "阿克苏市",
        652902: "库车市",
        652922: "温宿县",
        652924: "沙雅县",
        652925: "新和县",
        652926: "拜城县",
        652927: "乌什县",
        652928: "阿瓦提县",
        652929: "柯坪县"
    },
    653000: {
        653001: "阿图什市",
        653022: "阿克陶县",
        653023: "阿合奇县",
        653024: "乌恰县"
    },
    653100: {
        653101: "喀什市",
        653121: "疏附县",
        653122: "疏勒县",
        653123: "英吉沙县",
        653124: "泽普县",
        653125: "莎车县",
        653126: "叶城县",
        653127: "麦盖提县",
        653128: "岳普湖县",
        653129: "伽师县",
        653130: "巴楚县",
        653131: "塔什库尔干塔吉克自治县"
    },
    653200: {
        653201: "和田市",
        653221: "和田县",
        653222: "墨玉县",
        653223: "皮山县",
        653224: "洛浦县",
        653225: "策勒县",
        653226: "于田县",
        653227: "民丰县"
    },
    654000: {
        654002: "伊宁市",
        654003: "奎屯市",
        654004: "霍尔果斯市",
        654021: "伊宁县",
        654022: "察布查尔锡伯自治县",
        654023: "霍城县",
        654024: "巩留县",
        654025: "新源县",
        654026: "昭苏县",
        654027: "特克斯县",
        654028: "尼勒克县"
    },
    654200: {
        654201: "塔城市",
        654202: "乌苏市",
        654203: "沙湾市",
        654221: "额敏县",
        654224: "托里县",
        654225: "裕民县",
        654226: "和布克赛尔蒙古自治县"
    },
    654300: {
        654301: "阿勒泰市",
        654321: "布尔津县",
        654322: "富蕴县",
        654323: "福海县",
        654324: "哈巴河县",
        654325: "青河县",
        654326: "吉木乃县"
    },
    710100: {
        710101: "中正区",
        710102: "大同区",
        710103: "中山区",
        710104: "松山区",
        710105: "大安区",
        710106: "万华区",
        710107: "信义区",
        710108: "士林区",
        710109: "北投区",
        710110: "内湖区",
        710111: "南港区",
        710112: "文山区",
        710199: "其它区"
    },
    710200: {
        710201: "新兴区",
        710202: "前金区",
        710203: "芩雅区",
        710204: "盐埕区",
        710205: "鼓山区",
        710206: "旗津区",
        710207: "前镇区",
        710208: "三民区",
        710209: "左营区",
        710210: "楠梓区",
        710211: "小港区",
        710241: "苓雅区",
        710242: "仁武区",
        710243: "大社区",
        710244: "冈山区",
        710245: "路竹区",
        710246: "阿莲区",
        710247: "田寮区",
        710248: "燕巢区",
        710249: "桥头区",
        710250: "梓官区",
        710251: "弥陀区",
        710252: "永安区",
        710253: "湖内区",
        710254: "凤山区",
        710255: "大寮区",
        710256: "林园区",
        710257: "鸟松区",
        710258: "大树区",
        710259: "旗山区",
        710260: "美浓区",
        710261: "六龟区",
        710262: "内门区",
        710263: "杉林区",
        710264: "甲仙区",
        710265: "桃源区",
        710266: "那玛夏区",
        710267: "茂林区",
        710268: "茄萣区",
        710299: "其它区"
    },
    710300: {
        710301: "中西区",
        710302: "东区",
        710303: "南区",
        710304: "北区",
        710305: "安平区",
        710306: "安南区",
        710339: "永康区",
        710340: "归仁区",
        710341: "新化区",
        710342: "左镇区",
        710343: "玉井区",
        710344: "楠西区",
        710345: "南化区",
        710346: "仁德区",
        710347: "关庙区",
        710348: "龙崎区",
        710349: "官田区",
        710350: "麻豆区",
        710351: "佳里区",
        710352: "西港区",
        710353: "七股区",
        710354: "将军区",
        710355: "学甲区",
        710356: "北门区",
        710357: "新营区",
        710358: "后壁区",
        710359: "白河区",
        710360: "东山区",
        710361: "六甲区",
        710362: "下营区",
        710363: "柳营区",
        710364: "盐水区",
        710365: "善化区",
        710366: "大内区",
        710367: "山上区",
        710368: "新市区",
        710369: "安定区",
        710399: "其它区"
    },
    710400: {
        710401: "中区",
        710402: "东区",
        710403: "南区",
        710404: "西区",
        710405: "北区",
        710406: "北屯区",
        710407: "西屯区",
        710408: "南屯区",
        710431: "太平区",
        710432: "大里区",
        710433: "雾峰区",
        710434: "乌日区",
        710435: "丰原区",
        710436: "后里区",
        710437: "石冈区",
        710438: "东势区",
        710439: "和平区",
        710440: "新社区",
        710441: "潭子区",
        710442: "大雅区",
        710443: "神冈区",
        710444: "大肚区",
        710445: "沙鹿区",
        710446: "龙井区",
        710447: "梧栖区",
        710448: "清水区",
        710449: "大甲区",
        710450: "外埔区",
        710451: "大安区",
        710499: "其它区"
    },
    710500: {
        710507: "金沙镇",
        710508: "金湖镇",
        710509: "金宁乡",
        710510: "金城镇",
        710511: "烈屿乡",
        710512: "乌坵乡"
    },
    710600: {
        710614: "南投市",
        710615: "中寮乡",
        710616: "草屯镇",
        710617: "国姓乡",
        710618: "埔里镇",
        710619: "仁爱乡",
        710620: "名间乡",
        710621: "集集镇",
        710622: "水里乡",
        710623: "鱼池乡",
        710624: "信义乡",
        710625: "竹山镇",
        710626: "鹿谷乡"
    },
    710700: {
        710701: "仁爱区",
        710702: "信义区",
        710703: "中正区",
        710704: "中山区",
        710705: "安乐区",
        710706: "暖暖区",
        710707: "七堵区",
        710799: "其它区"
    },
    710800: {
        710801: "东区",
        710802: "北区",
        710803: "香山区",
        710899: "其它区"
    },
    710900: {
        710901: "东区",
        710902: "西区",
        710999: "其它区"
    },
    711100: {
        711130: "万里区",
        711132: "板桥区",
        711133: "汐止区",
        711134: "深坑区",
        711135: "石碇区",
        711136: "瑞芳区",
        711137: "平溪区",
        711138: "双溪区",
        711139: "贡寮区",
        711140: "新店区",
        711141: "坪林区",
        711142: "乌来区",
        711143: "永和区",
        711144: "中和区",
        711145: "土城区",
        711146: "三峡区",
        711147: "树林区",
        711148: "莺歌区",
        711149: "三重区",
        711150: "新庄区",
        711151: "泰山区",
        711152: "林口区",
        711153: "芦洲区",
        711154: "五股区",
        711155: "八里区",
        711156: "淡水区",
        711157: "三芝区",
        711158: "石门区"
    },
    711200: {
        711287: "宜兰市",
        711288: "头城镇",
        711289: "礁溪乡",
        711290: "壮围乡",
        711291: "员山乡",
        711292: "罗东镇",
        711293: "三星乡",
        711294: "大同乡",
        711295: "五结乡",
        711296: "冬山乡",
        711297: "苏澳镇",
        711298: "南澳乡",
        711299: "钓鱼台"
    },
    711300: {
        711387: "竹北市",
        711388: "湖口乡",
        711389: "新丰乡",
        711390: "新埔镇",
        711391: "关西镇",
        711392: "芎林乡",
        711393: "宝山乡",
        711394: "竹东镇",
        711395: "五峰乡",
        711396: "横山乡",
        711397: "尖石乡",
        711398: "北埔乡",
        711399: "峨眉乡"
    },
    711400: {
        711414: "中坜区",
        711415: "平镇区",
        711417: "杨梅区",
        711418: "新屋区",
        711419: "观音区",
        711420: "桃园区",
        711421: "龟山区",
        711422: "八德区",
        711423: "大溪区",
        711425: "大园区",
        711426: "芦竹区",
        711487: "中坜市",
        711488: "平镇市",
        711489: "龙潭乡",
        711490: "杨梅市",
        711491: "新屋乡",
        711492: "观音乡",
        711493: "桃园市",
        711494: "龟山乡",
        711495: "八德市",
        711496: "大溪镇",
        711497: "复兴乡",
        711498: "大园乡",
        711499: "芦竹乡"
    },
    711500: {
        711520: "头份市",
        711582: "竹南镇",
        711583: "头份镇",
        711584: "三湾乡",
        711585: "南庄乡",
        711586: "狮潭乡",
        711587: "后龙镇",
        711588: "通霄镇",
        711589: "苑里镇",
        711590: "苗栗市",
        711591: "造桥乡",
        711592: "头屋乡",
        711593: "公馆乡",
        711594: "大湖乡",
        711595: "泰安乡",
        711596: "铜锣乡",
        711597: "三义乡",
        711598: "西湖乡",
        711599: "卓兰镇"
    },
    711700: {
        711736: "员林市",
        711774: "彰化市",
        711775: "芬园乡",
        711776: "花坛乡",
        711777: "秀水乡",
        711778: "鹿港镇",
        711779: "福兴乡",
        711780: "线西乡",
        711781: "和美镇",
        711782: "伸港乡",
        711783: "员林镇",
        711784: "社头乡",
        711785: "永靖乡",
        711786: "埔心乡",
        711787: "溪湖镇",
        711788: "大村乡",
        711789: "埔盐乡",
        711790: "田中镇",
        711791: "北斗镇",
        711792: "田尾乡",
        711793: "埤头乡",
        711794: "溪州乡",
        711795: "竹塘乡",
        711796: "二林镇",
        711797: "大城乡",
        711798: "芳苑乡",
        711799: "二水乡"
    },
    711900: {
        711982: "番路乡",
        711983: "梅山乡",
        711984: "竹崎乡",
        711985: "阿里山乡",
        711986: "中埔乡",
        711987: "大埔乡",
        711988: "水上乡",
        711989: "鹿草乡",
        711990: "太保市",
        711991: "朴子市",
        711992: "东石乡",
        711993: "六脚乡",
        711994: "新港乡",
        711995: "民雄乡",
        711996: "大林镇",
        711997: "溪口乡",
        711998: "义竹乡",
        711999: "布袋镇"
    },
    712100: {
        712180: "斗南镇",
        712181: "大埤乡",
        712182: "虎尾镇",
        712183: "土库镇",
        712184: "褒忠乡",
        712185: "东势乡",
        712186: "台西乡",
        712187: "仑背乡",
        712188: "麦寮乡",
        712189: "斗六市",
        712190: "林内乡",
        712191: "古坑乡",
        712192: "莿桐乡",
        712193: "西螺镇",
        712194: "二仑乡",
        712195: "北港镇",
        712196: "水林乡",
        712197: "口湖乡",
        712198: "四湖乡",
        712199: "元长乡"
    },
    712400: {
        712451: "崁顶乡",
        712467: "屏东市",
        712468: "三地门乡",
        712469: "雾台乡",
        712470: "玛家乡",
        712471: "九如乡",
        712472: "里港乡",
        712473: "高树乡",
        712474: "盐埔乡",
        712475: "长治乡",
        712476: "麟洛乡",
        712477: "竹田乡",
        712478: "内埔乡",
        712479: "万丹乡",
        712480: "潮州镇",
        712481: "泰武乡",
        712482: "来义乡",
        712483: "万峦乡",
        712484: "莰顶乡",
        712485: "新埤乡",
        712486: "南州乡",
        712487: "林边乡",
        712488: "东港镇",
        712489: "琉球乡",
        712490: "佳冬乡",
        712491: "新园乡",
        712492: "枋寮乡",
        712493: "枋山乡",
        712494: "春日乡",
        712495: "狮子乡",
        712496: "车城乡",
        712497: "牡丹乡",
        712498: "恒春镇",
        712499: "满州乡"
    },
    712500: {
        712584: "台东市",
        712585: "绿岛乡",
        712586: "兰屿乡",
        712587: "延平乡",
        712588: "卑南乡",
        712589: "鹿野乡",
        712590: "关山镇",
        712591: "海端乡",
        712592: "池上乡",
        712593: "东河乡",
        712594: "成功镇",
        712595: "长滨乡",
        712596: "金峰乡",
        712597: "大武乡",
        712598: "达仁乡",
        712599: "太麻里乡"
    },
    712600: {
        712686: "花莲市",
        712687: "新城乡",
        712688: "太鲁阁",
        712689: "秀林乡",
        712690: "吉安乡",
        712691: "寿丰乡",
        712692: "凤林镇",
        712693: "光复乡",
        712694: "丰滨乡",
        712695: "瑞穗乡",
        712696: "万荣乡",
        712697: "玉里镇",
        712698: "卓溪乡",
        712699: "富里乡"
    },
    712700: {
        712794: "马公市",
        712795: "西屿乡",
        712796: "望安乡",
        712797: "七美乡",
        712798: "白沙乡",
        712799: "湖西乡"
    },
    712800: {
        712896: "南竿乡",
        712897: "北竿乡",
        712898: "东引乡",
        712899: "莒光乡"
    },
    810100: {
        810101: "中西区",
        810102: "湾仔区",
        810103: "东区",
        810104: "南区"
    },
    810200: {
        810201: "九龙城区",
        810202: "油尖旺区",
        810203: "深水埗区",
        810204: "黄大仙区",
        810205: "观塘区"
    },
    810300: {
        810301: "北区",
        810302: "大埔区",
        810303: "沙田区",
        810304: "西贡区",
        810305: "元朗区",
        810306: "屯门区",
        810307: "荃湾区",
        810308: "葵青区",
        810309: "离岛区"
    },
    820100: {
        820101: "澳门半岛"
    },
    820200: {
        820201: "离岛"
    },
    900100: {
        900101: "其它区"
    }
};

var script$a = {
    name: 'YArea',
    components: {
        areaSelect: __vue_component__$b
    },
    data() {
        return {
            province: undefined,
            city: undefined,
            area: undefined,
            detailAddress: undefined,
            provinceList: [],
            cityList: [],
            areaList: []
        };
    },
    watch: {
        province: {
            handler(newVal, oldVal) {
                if (newVal !== oldVal) {
                    this.city = undefined;
                    this.area = undefined;
                }
            }
        },
        city: {
            handler(newVal, oldVal) {
                if (newVal !== oldVal) {
                    this.area = undefined;
                }
            }
        }
    },
    mounted() {},
    methods: {
        getSelectedData($event) {
            if ($event && this.provinceList.length === 0) {
                this.provinceList = Object.keys(provinceData).map(key => {
                    return {
                        code: key,
                        name: provinceData[key]
                    };
                });
            }
        },
        getCityList($event) {
            if ($event) {
                this.cityList = this.province ? Object.keys(cityData[this.province]).map(key => {
                    return {
                        code: key,
                        name: cityData[this.province][key]
                    };
                }) : [];
            }
        },
        getAreaList($event) {
            if ($event) {
                this.areaList = this.city ? Object.keys(areaData[this.city]).map(key => {
                    return {
                        code: key,
                        name: areaData[this.city][key]
                    };
                }) : [];
            }
        }
    }
};

/* script */ var __vue_script__$a = script$a;
/* template */
var __vue_render__$9 = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c(
    "div",
    { staticClass: "y-area" },
    [
      _c("area-select", {
        attrs: { placeholder: "请选择", options: _vm.provinceList },
        on: { dropdownVisibleChange: _vm.getSelectedData },
        model: {
          value: _vm.province,
          callback: function($$v) {
            _vm.province = $$v;
          },
          expression: "province"
        }
      }),
      _vm._v(" "),
      _c("area-select", {
        attrs: { placeholder: "请选择", options: _vm.cityList },
        on: {
          dropdownVisibleChange: _vm.getCityList,
          change: _vm.handleChangeCity
        },
        model: {
          value: _vm.city,
          callback: function($$v) {
            _vm.city = $$v;
          },
          expression: "city"
        }
      }),
      _vm._v(" "),
      _c("area-select", {
        attrs: { placeholder: "请选择", options: _vm.areaList },
        on: {
          dropdownVisibleChange: _vm.getAreaList,
          change: _vm.handleChangeArea
        },
        model: {
          value: _vm.area,
          callback: function($$v) {
            _vm.area = $$v;
          },
          expression: "area"
        }
      }),
      _vm._v(" "),
      _c("a-input", {
        attrs: { placeholder: "请输入详细地址" },
        model: {
          value: _vm.detailAddress,
          callback: function($$v) {
            _vm.detailAddress = $$v;
          },
          expression: "detailAddress"
        }
      })
    ],
    1
  )
};
var __vue_staticRenderFns__$9 = [];
__vue_render__$9._withStripped = true;

  /* style */
  var __vue_inject_styles__$a = undefined;
  /* scoped */
  var __vue_scope_id__$a = undefined;
  /* module identifier */
  var __vue_module_identifier__$a = undefined;
  /* functional template */
  var __vue_is_functional_template__$a = false;
  /* style inject */
  
  /* style inject SSR */
  
  /* style inject shadow dom */
  

  
  var __vue_component__$a = /*#__PURE__*/normalizeComponent(
    { render: __vue_render__$9, staticRenderFns: __vue_staticRenderFns__$9 },
    __vue_inject_styles__$a,
    __vue_script__$a,
    __vue_scope_id__$a,
    __vue_is_functional_template__$a,
    __vue_module_identifier__$a,
    false,
    undefined,
    undefined,
    undefined
  );

var script$9 = {
    name: 'FormAreaSelect',
    components: {
        FormDistpicker: __vue_component__$c,
        YArea: __vue_component__$a
    },
    mixins: [FormComponentMixin],
    props: {
        componentConfig: VueTypes.object
    },
    data() {
        return {
            attrsParams: {},
            areaRule: [{
                required: true,
                type: "object",
                validator: (rule, value, callback) => {
                    if (this.currentFormData && Object.prototype.toString.call(this.currentFormData) === '[object Object]') {
                        var province = this.currentFormData[this.componentConfig.bindDataInfo['provinceKey']];
                        var city = this.currentFormData[this.componentConfig.bindDataInfo['cityKey']];
                        var area = this.currentFormData[this.componentConfig.bindDataInfo['areaKey']];
                        if (this.componentConfig.renderIsChina) {
                            province && city && area ? callback() : callback(new Error(this.$t('请选择省市区')));
                        } else {
                            province && city ? callback() : callback(new Error(this.$t('请输入州市')));
                        }
                    } else {
                        callback();
                    }
                }
            }]
        };
    },
    computed: {
        currentFormData() {
            return this.formSource && this.formSource.formDataControl.formData;
        }
    },
    created() {
        this.attrsParams = this.$attrs;
        this.componentConfig.model = `${this.componentConfig.code}-${this.componentConfig.bindDataInfo['provinceKey']}-${this.componentConfig.bindDataInfo['cityKey']}-${this.componentConfig.bindDataInfo['areaKey']}`;
        this.handleCustomCompRule();
        if (!this.componentConfig.hasOwnProperty('renderIsChina')) {
            this.$set(this.componentConfig, 'renderIsChina', true);
        }
    },
    methods: {
        handleChange(selected) {
            var {extendsfields} = this.formSource.formDataControl.formData;
            extendsfields[this.componentConfig.bindDataInfo['provinceKey']] = {
                value: selected.province.code,
                label: selected.province.value
            };
            extendsfields[this.componentConfig.bindDataInfo['cityKey']] = {
                value: selected.city.code,
                label: selected.city.value
            };
            extendsfields[this.componentConfig.bindDataInfo['areaKey']] = {
                value: selected.area.code,
                label: selected.area.value
            };
            this.$emit('change', selected, this.componentConfig.model);
        },
        handleCustomCompRule() {
            var rules = this.componentConfig.rules;
            rules.forEach(rule => {
                if (rule.required) {
                    this.$set(this.areaRule, 'required', rule.required);
                }
            });
        }
    }
};

/* script */ var __vue_script__$9 = script$9;
/* template */
var __vue_render__$8 = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c(
    "div",
    { staticClass: "form-area-select form-component" },
    [
      _c(
        "proxy-form-item",
        {
          attrs: {
            label: _vm.componentConfig.label,
            componentConfig: _vm.componentConfig,
            promptMessage: _vm.componentConfig.promptMessageContent,
            rules: _vm.areaRule
          }
        },
        [
          _vm.renderScene === "ide"
            ? _c("form-distpicker", {
                attrs: {
                  formSource: _vm.formSource,
                  disabled: _vm.componentConfig.disabled,
                  currentFormData: _vm.currentFormData,
                  bindDataInfo: _vm.componentConfig.bindDataInfo,
                  componentConfig: _vm.componentConfig,
                  renderIsChina: _vm.componentConfig.renderIsChina
                },
                on: { change: _vm.handleChange }
              })
            : _vm._e(),
          _vm._v(" "),
          _vm.renderScene === "edit"
            ? _c("form-distpicker", {
                attrs: {
                  formSource: _vm.formSource,
                  currentFormData: _vm.currentFormData,
                  disabled: _vm.componentConfig.disabled,
                  bindDataInfo: _vm.componentConfig.bindDataInfo,
                  componentConfig: _vm.componentConfig,
                  renderIsChina: _vm.componentConfig.renderIsChina
                },
                on: { change: _vm.handleChange }
              })
            : _vm._e(),
          _vm._v(" "),
          _vm.renderScene === "read"
            ? _c("form-distpicker", {
                staticClass: "disabled-area",
                attrs: {
                  formSource: _vm.formSource,
                  disabled: true,
                  bindDataInfo: _vm.componentConfig.bindDataInfo,
                  componentConfig: _vm.componentConfig,
                  renderIsChina: _vm.componentConfig.renderIsChina
                },
                on: { change: _vm.handleChange }
              })
            : _vm._e()
        ],
        1
      )
    ],
    1
  )
};
var __vue_staticRenderFns__$8 = [];
__vue_render__$8._withStripped = true;

  /* style */
  var __vue_inject_styles__$9 = undefined;
  /* scoped */
  var __vue_scope_id__$9 = undefined;
  /* module identifier */
  var __vue_module_identifier__$9 = undefined;
  /* functional template */
  var __vue_is_functional_template__$9 = false;
  /* style inject */
  
  /* style inject SSR */
  
  /* style inject shadow dom */
  

  
  var __vue_component__$9 = /*#__PURE__*/normalizeComponent(
    { render: __vue_render__$8, staticRenderFns: __vue_staticRenderFns__$8 },
    __vue_inject_styles__$9,
    __vue_script__$9,
    __vue_scope_id__$9,
    __vue_is_functional_template__$9,
    __vue_module_identifier__$9,
    false,
    undefined,
    undefined,
    undefined
  );

__vue_component__$9.install = function (Vue) {
    Vue.component(__vue_component__$9.name, __vue_component__$9);
};

var script$8 = {
    name: 'YlyFormItemWrapper',
    functional: true,
    inject: [],
    props: {
        componentConfig: {
            type: Object,
            required: true
        },
        formSource: {
            type: Object,
            default: () => ({})
        },
        isSubComponent: {
            type: Boolean,
            default: false
        },
        renderScene: {
            type: String,
            required: true,
            validator: function (value) {
                var renderSceneList = ['ide', 'edit', 'read'];
                return renderSceneList.includes(value);
            }
        },
        parentWidget: {
            type: Object
        }
    },
    render: function (h, context) {
        var {componentConfig, formSource, renderScene, isSubComponent, parentWidget} = context.props;
        var calcComponentConfig = () => {
            if (!componentConfig.version || componentConfig.version !== 'v2.0') {
                formSource && formSource.formComponentsControl.constructor.convertOldComponentConfig(componentConfig);
            }
            return componentConfig;
        };
        var computedComponentConfig = calcComponentConfig();
        var clickItemWrapper = $event => {
            $event.stopPropagation();
            context.listeners.selectedItem && context.listeners.selectedItem(computedComponentConfig);
        };
        var handleChange = value => {
            context.parent.handleChange && context.parent.handleChange(value, calcComponentConfig.model);
        };
        var addItemInContainer = $event => {
            context.listeners.addItemInContainer && context.listeners.addItemInContainer($event);
        };
        var isRequired = computedComponentConfig.rules && computedComponentConfig.rules[0] && computedComponentConfig.rules[0].required;
        var getRenderCompName = () => {
            var originConfig = formSource.formComponentsControl.constructor.getComponentConfigByCode(computedComponentConfig.code);
            let renderCompName = originConfig.renderComponent[renderScene];
            return renderCompName;
        };
        var clickCopyAdd = $event => {
            $event.stopPropagation();
            $event.preventDefault();
            context.listeners.handleCopyComponent && context.listeners.handleCopyComponent(computedComponentConfig);
        };
        var clickDeleteOption = $event => {
            $event.stopPropagation();
            $event.preventDefault();
            context.listeners.deleteItem && context.listeners.deleteItem(computedComponentConfig.key);
        };
        var ideRenderOptions = h('div', {
            class: "form-item-options"
        }, [h('div', {
            class: "options-icon",
            on: {
                click: clickCopyAdd
            }
        }, [h('a-icon', {
            attrs: {
                type: "copy"
            }
        })]), h('div', {
            class: "options-icon",
            on: {
                click: clickDeleteOption
            }
        }, [h('a-icon', {
            attrs: {
                type: "delete"
            }
        })])]);
        var renderWrapperClass = () => {
            var ideClass = {
                'ide-display-component': computedComponentConfig.hidden,
                'select-form-item': computedComponentConfig.key === formSource.selectedComponent.key,
                'ide-item-wrapper': true,
                'hidden-comp': computedComponentConfig.hidden
            };
            var renderWrapperClass = {
                'form-item-wrapper': true,
                'is-required': isRequired
            };
            if (renderScene === 'ide') {
                Object.assign(renderWrapperClass, ideClass);
            }
            return renderWrapperClass;
        };
        var FormNodeStyle = () => {
            let width = componentConfig.width;
            if (isSubComponent) {
                width = parseFloat(100 / parentWidget.colNum) + '%';
            }
            if (typeof width === 'string' && (width.slice(-1) === '%' || width.slice(-2) === 'px')) {
                return {
                    width: width
                };
            }
            return {
                width: width ? parseFloat(width) + '%' : '100%'
            };
        };
        var isShowOptions = renderScene === 'ide' && computedComponentConfig.key === formSource.selectedComponent.key;
        var getRenderScene = () => {
            var emptyRenderOptions = '';
            var RenderSceneTemp = h('div', {
                style: {
                    display: computedComponentConfig.hidden && renderScene !== 'ide' ? 'none' : 'block',
                    ...FormNodeStyle()
                },
                class: renderWrapperClass(),
                on: {
                    click: clickItemWrapper
                },
                attrs: {
                    'data-type': computedComponentConfig.componentType,
                    'data-component-id': computedComponentConfig.key
                }
            }, [isShowOptions ? ideRenderOptions : emptyRenderOptions, h(getRenderCompName(), {
                props: {
                    key: computedComponentConfig.key,
                    record: computedComponentConfig,
                    componentConfig: computedComponentConfig,
                    renderScene: renderScene,
                    formSource: formSource
                },
                style: {},
                on: {
                    addItemInContainer: addItemInContainer,
                    change: handleChange
                }
            })]);
            return RenderSceneTemp;
        };
        return getRenderScene();
    }
};

/* script */ var __vue_script__$8 = script$8;

/* template */

  /* style */
  var __vue_inject_styles__$8 = undefined;
  /* scoped */
  var __vue_scope_id__$8 = undefined;
  /* module identifier */
  var __vue_module_identifier__$8 = undefined;
  /* functional template */
  var __vue_is_functional_template__$8 = undefined;
  /* style inject */
  
  /* style inject SSR */
  
  /* style inject shadow dom */
  

  
  var __vue_component__$8 = /*#__PURE__*/normalizeComponent(
    {},
    __vue_inject_styles__$8,
    __vue_script__$8,
    __vue_scope_id__$8,
    __vue_is_functional_template__$8,
    __vue_module_identifier__$8,
    false,
    undefined,
    undefined,
    undefined
  );

var script$7 = {
    name: 'YlyFormItemContainer',
    components: {
        draggable,
        ylyFormItemWrapper: __vue_component__$8
    },
    props: {
        formSource: {
            type: Object,
            required: true
        },
        renderScene: {
            type: String,
            required: true
        },
        dragGroup: {
            type: Object,
            default: () => {
                return {
                    pull: function (to, from, item) {
                        if (to.options && to.options.group) {
                            return ['form-draggable', 'form-card', 'form-grid'].includes(to.options.group.name);
                        }
                        return false;
                    },
                    put: ['form-draggable', 'form-card', 'form-grid'],
                    name: 'form-draggable'
                };
            }
        },
        hideEmpty: {
            type: Boolean,
            default: false
        },
        parentChildKey: {
            type: String,
            default: () => 'children'
        },
        parentWidget: {
            type: Object
        },
        itemList: {
            type: Array,
            default() {
                return [];
            }
        }
    },
    data() {
        return {};
    },
    computed: {
        draggableOptions() {
            return {
                easing: 'cubic-bezier(1, 1, 1, 1)',
                animation: 200,
                fallbackOnBody: true,
                swapThreshold: 0.65,
                disabled: this.renderScene !== 'ide'
            };
        },
        isEmptyInIde() {
            return !this.hideEmpty && this.renderScene === 'ide' && this.formItemList.length === 0;
        },
        formItemList() {
            if (this.parentWidget) {
                return this.parentWidget[this.parentChildKey];
            } else {
                return this.itemList;
            }
        }
    },
    methods: {
        addItemInContainer($event) {
            console.log($event);
            if ($event.newIndex === 1 && this.formItemList.length === 1) {
                $event.newIndex = 0;
            }
            this.$emit('addItemInContainer', {
                formItemList: this.formItemList,
                parentWidget: this.parentWidget,
                widget: cloneDeep(this.formItemList[$event.newIndex]),
                $event: $event
            });
        },
        handleCopyComponent(widget) {
            this.formSource.formDataControl.copyItemInContainer({
                formItemList: this.formItemList,
                widget: cloneDeep(widget)
            });
        },
        updateItemInContainer($event) {
            console.log($event);
        },
        handleSelectItem(componentItem) {
            this.formSource.updateSelectedComponent(componentItem);
        },
        handleDeleteItem(key) {
            this.formSource.formDataControl.deleteItemInContainer({
                formItemList: this.formItemList,
                key
            });
        }
    }
};

/* script */ var __vue_script__$7 = script$7;
/* template */
var __vue_render__$7 = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c(
    "div",
    { staticClass: "form-item-container" },
    [
      _c(
        "draggable",
        _vm._b(
          {
            staticClass: "draggable-box",
            class: {
              "form-item-list-empty": _vm.isEmptyInIde
            },
            attrs: {
              list: _vm.formItemList,
              group: _vm.dragGroup,
              ghostClass: "moving",
              filter: ".form-item-list-empty",
              tag: "div"
            },
            on: {
              add: function($event) {
                return _vm.addItemInContainer($event)
              },
              update: function($event) {
                return _vm.updateItemInContainer($event)
              }
            }
          },
          "draggable",
          _vm.draggableOptions,
          false
        ),
        [
          _vm.isEmptyInIde
            ? _c("div", { staticClass: "form-item-list-empty" }, [
                _vm._v("\n      请添加数据\n    ")
              ])
            : _vm._l(_vm.formItemList, function(componentConfig, index) {
                return _c(
                  "yly-form-item-wrapper",
                  _vm._g(
                    _vm._b(
                      {
                        key: componentConfig.key,
                        staticClass: "drag-move",
                        attrs: {
                          componentConfig: componentConfig,
                          parentWidget: _vm.parentWidget,
                          formSource: _vm.formSource,
                          renderScene: _vm.renderScene
                        },
                        on: {
                          selectedItem: _vm.handleSelectItem,
                          deleteItem: _vm.handleDeleteItem,
                          handleCopyComponent: _vm.handleCopyComponent
                        }
                      },
                      "yly-form-item-wrapper",
                      _vm.$attrs,
                      false
                    ),
                    _vm.$listeners
                  )
                )
              })
        ],
        2
      )
    ],
    1
  )
};
var __vue_staticRenderFns__$7 = [];
__vue_render__$7._withStripped = true;

  /* style */
  var __vue_inject_styles__$7 = undefined;
  /* scoped */
  var __vue_scope_id__$7 = undefined;
  /* module identifier */
  var __vue_module_identifier__$7 = undefined;
  /* functional template */
  var __vue_is_functional_template__$7 = false;
  /* style inject */
  
  /* style inject SSR */
  
  /* style inject shadow dom */
  

  
  var __vue_component__$7 = /*#__PURE__*/normalizeComponent(
    { render: __vue_render__$7, staticRenderFns: __vue_staticRenderFns__$7 },
    __vue_inject_styles__$7,
    __vue_script__$7,
    __vue_scope_id__$7,
    __vue_is_functional_template__$7,
    __vue_module_identifier__$7,
    false,
    undefined,
    undefined,
    undefined
  );

var script$6 = {
    name: 'FormCard',
    mixins: [FormComponentMixin],
    components: {
        YlyFormItemContainer: __vue_component__$7
    },
    props: {
        renderScene: {
            type: String,
            default: ''
        }
    },
    data() {
        return {
            dragGroup: {
                pull: true,
                put: function (to, from, item) {
                    console.log(to);
                    console.log(from);
                    console.log(item);
                    return true;
                },
                name: 'form-card'
            }
        };
    },
    mounted() {},
    methods: {
        addItemInContainer(content) {
            this.$emit('addItemInContainer', content);
        }
    }
};

/* script */ var __vue_script__$6 = script$6;
/* template */
var __vue_render__$6 = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c(
    "div",
    { staticClass: "form-card form-component" },
    [
      _c(
        "a-card",
        { attrs: { title: _vm.componentConfig.label } },
        [
          _c(
            "yly-form-item-container",
            _vm._g(
              {
                attrs: {
                  dragGroup: _vm.dragGroup,
                  parentWidget: _vm.componentConfig,
                  parentChildKey: "children",
                  renderScene: _vm.renderScene,
                  formSource: _vm.formSource
                }
              },
              _vm.$listeners
            )
          )
        ],
        1
      )
    ],
    1
  )
};
var __vue_staticRenderFns__$6 = [];
__vue_render__$6._withStripped = true;

  /* style */
  var __vue_inject_styles__$6 = undefined;
  /* scoped */
  var __vue_scope_id__$6 = undefined;
  /* module identifier */
  var __vue_module_identifier__$6 = undefined;
  /* functional template */
  var __vue_is_functional_template__$6 = false;
  /* style inject */
  
  /* style inject SSR */
  
  /* style inject shadow dom */
  

  
  var __vue_component__$6 = /*#__PURE__*/normalizeComponent(
    { render: __vue_render__$6, staticRenderFns: __vue_staticRenderFns__$6 },
    __vue_inject_styles__$6,
    __vue_script__$6,
    __vue_scope_id__$6,
    __vue_is_functional_template__$6,
    __vue_module_identifier__$6,
    false,
    undefined,
    undefined,
    undefined
  );

__vue_component__$6.install = function (Vue) {
    Vue.component(__vue_component__$6.name, __vue_component__$6);
};

var script$5 = {
    name: 'FormGrid',
    mixins: [FormComponentMixin],
    components: {
        YlyFormItemContainer: __vue_component__$7
    },
    props: {
        renderScene: {
            type: String,
            default: ''
        }
    },
    data() {
        return {
            dragGroup: {
                pull: true,
                put: function (to, from, item) {
                    console.log(to);
                    console.log(from);
                    console.log(item);
                    return true;
                },
                name: 'form-grid'
            }
        };
    },
    mounted() {},
    methods: {}
};

/* script */ var __vue_script__$5 = script$5;
/* template */
var __vue_render__$5 = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c(
    "div",
    { staticClass: "form-grid form-component" },
    [
      _c(
        "yly-form-item-container",
        _vm._g(
          {
            attrs: {
              dragGroup: _vm.dragGroup,
              parentWidget: _vm.componentConfig,
              parentChildKey: "children",
              renderScene: _vm.renderScene,
              formSource: _vm.formSource,
              isSubComponent: true
            }
          },
          _vm.$listeners
        )
      )
    ],
    1
  )
};
var __vue_staticRenderFns__$5 = [];
__vue_render__$5._withStripped = true;

  /* style */
  var __vue_inject_styles__$5 = undefined;
  /* scoped */
  var __vue_scope_id__$5 = undefined;
  /* module identifier */
  var __vue_module_identifier__$5 = undefined;
  /* functional template */
  var __vue_is_functional_template__$5 = false;
  /* style inject */
  
  /* style inject SSR */
  
  /* style inject shadow dom */
  

  
  var __vue_component__$5 = /*#__PURE__*/normalizeComponent(
    { render: __vue_render__$5, staticRenderFns: __vue_staticRenderFns__$5 },
    __vue_inject_styles__$5,
    __vue_script__$5,
    __vue_scope_id__$5,
    __vue_is_functional_template__$5,
    __vue_module_identifier__$5,
    false,
    undefined,
    undefined,
    undefined
  );

__vue_component__$5.install = function (Vue) {
    Vue.component(__vue_component__$5.name, __vue_component__$5);
};

var script$4 = {
    name: 'FormMyField',
    mixins: [FormComponentMixin],
    components: {
        YlyFormItemContainer: __vue_component__$7
    },
    props: {
        dragGroup: {
            type: Object,
            default: () => {
                return {
                    pull: false,
                    put: false,
                    name: 'form-draggable'
                };
            }
        }
    },
    data() {
        return {};
    },
    mounted() {},
    methods: {
        handleAddField() {
            var textField = this.formSource.constructor.FormComponentsControl.getComponentConfigByCode('FORM_TEXT_FIELD');
            textField.key = 'textField_' + new Date().getTime();
            console.log(textField);
            this.componentConfig.children.push(textField);
        }
    }
};

/* script */ var __vue_script__$4 = script$4;
/* template */
var __vue_render__$4 = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c(
    "div",
    {
      directives: [
        {
          name: "show",
          rawName: "v-show",
          value: _vm.renderScene === "ide",
          expression: "renderScene==='ide'"
        }
      ],
      staticClass: "form-component form-my-field"
    },
    [
      _vm.renderScene === "ide"
        ? _c("div", { staticStyle: { "margin-bottom": "12px" } }, [
            _c("label", [_vm._v(_vm._s(_vm.$t("字段集")) + " ")]),
            _vm._v(" "),
            _c("a", { on: { click: _vm.handleAddField } }, [
              _vm._v(_vm._s(_vm.$t("添加")))
            ])
          ])
        : _vm._e(),
      _vm._v(" "),
      _vm.renderScene === "ide"
        ? _c(
            "yly-form-item-container",
            _vm._g(
              {
                attrs: {
                  parentWidget: _vm.componentConfig,
                  dragGroup: _vm.dragGroup,
                  parentChildKey: "children",
                  renderScene: _vm.renderScene,
                  formSource: _vm.formSource
                }
              },
              _vm.$listeners
            )
          )
        : _vm._e()
    ],
    1
  )
};
var __vue_staticRenderFns__$4 = [];
__vue_render__$4._withStripped = true;

  /* style */
  var __vue_inject_styles__$4 = undefined;
  /* scoped */
  var __vue_scope_id__$4 = undefined;
  /* module identifier */
  var __vue_module_identifier__$4 = undefined;
  /* functional template */
  var __vue_is_functional_template__$4 = false;
  /* style inject */
  
  /* style inject SSR */
  
  /* style inject shadow dom */
  

  
  var __vue_component__$4 = /*#__PURE__*/normalizeComponent(
    { render: __vue_render__$4, staticRenderFns: __vue_staticRenderFns__$4 },
    __vue_inject_styles__$4,
    __vue_script__$4,
    __vue_scope_id__$4,
    __vue_is_functional_template__$4,
    __vue_module_identifier__$4,
    false,
    undefined,
    undefined,
    undefined
  );

__vue_component__$4.install = function (Vue) {
    Vue.component(__vue_component__$4.name, __vue_component__$4);
};

var script$3 = {
    name: "FormPersonnelSelect",
    mixins: [FormComponentMixin],
    props: {},
    data() {
        this.debounceGetPersonnelList = debounce(this.getPersonnelList, 500);
        return {
            personnelList: [],
            fetching: false,
            saas: '',
            searchUrl: '/onlcode/saas/user/autoCompleteUserInfo'
        };
    },
    computed: {},
    created() {
        if (this.$sketon && this.$sketon.APP_CHANEL === 'saas') {
            this.saas = this.$sketon.APP_PROJECT_CODE;
            this.searchUrl = '/mdm/user/autoCompleteUserInfo';
        } else {
            this.saas = this.$route.query.projectCode;
        }
        this.initEditShowOptions();
    },
    methods: {
        initEditShowOptions() {
            var loadOptions = () => {
                var {extendsfields = {}} = this.formSource.formDataControl.formData;
                if (extendsfields[this.componentConfig.model]) {
                    this.personnelList = [extendsfields[this.componentConfig.model]];
                }
            };
            this.formSource.formDataControl.loadFormDataAfterFuncList.push(loadOptions);
        },
        handleChange(value, key, target) {
            FormComponentMixin.methods.handleChange.call(this, value, key, target);
            let selectedOption = this.personnelList.find(val => val.value == value);
            if (selectedOption) {
                if (this.componentConfig.fieldRelatedName) {
                    this.formSource.formDataControl.updateFormData({
                        [this.componentConfig.fieldRelatedName]: selectedOption.userName || selectedOption.label || selectedOption.text
                    });
                }
                var {extendsfields = {}} = this.formSource.formDataControl.formData;
                this.formSource.formDataControl.updateFormData({
                    extendsfields: {
                        ...extendsfields,
                        [this.componentConfig.model]: selectedOption
                    }
                });
            }
        },
        getPersonnelList(value = '') {
            this.personnelList = [];
            this.fetching = true;
            manage.postActionAsHeader({
                url: this.searchUrl,
                params: {
                    searchVal: value
                },
                headers: {
                    saas: this.saas
                }
            }).then(res => {
                let {result = [], code} = res;
                if (code == 200) {
                    this.personnelList = result.map(val => ({
                        ...val,
                        label: `${val.userName}(${val.userCode})`,
                        value: val.userCode
                    }));
                }
                this.fetching = false;
            }).catch(err => {
                console.error(err);
            });
        }
    }
};

/* script */ var __vue_script__$3 = script$3;

/* template */
var __vue_render__$3 = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c(
    "div",
    {
      staticClass: "yly-user-search form-component",
      staticStyle: { width: "100%" }
    },
    [
      _c(
        "proxy-form-item",
        {
          attrs: {
            label: _vm.componentConfig.label,
            componentConfig: _vm.componentConfig,
            promptMessage: _vm.componentConfig.promptMessageContent,
            rules: _vm.componentConfig.rules
          }
        },
        [
          _vm.renderScene === "edit"
            ? _c(
                "a-select",
                _vm._g(
                  _vm._b(
                    {
                      attrs: {
                        showSearch: "",
                        allowClear: "",
                        placeholder:
                          _vm.componentConfig.placeholder || "请输入",
                        disabled: _vm.componentConfig.disabled
                      },
                      on: {
                        change: function($event) {
                          return _vm.handleChange(
                            $event,
                            _vm.componentConfig.model,
                            _vm.componentConfig
                          )
                        },
                        search: _vm.debounceGetPersonnelList,
                        focus: _vm.getPersonnelList
                      },
                      model: {
                        value: _vm.formValue,
                        callback: function($$v) {
                          _vm.formValue = $$v;
                        },
                        expression: "formValue"
                      }
                    },
                    "a-select",
                    _vm.$attrs,
                    false
                  ),
                  _vm.$listeners
                ),
                [
                  _c("a-spin", {
                    directives: [
                      {
                        name: "show",
                        rawName: "v-show",
                        value: _vm.fetching,
                        expression: "fetching"
                      }
                    ],
                    attrs: { slot: "notFoundContent", size: "small" },
                    slot: "notFoundContent"
                  }),
                  _vm._v(" "),
                  _vm._l(_vm.personnelList, function(item) {
                    return [
                      _c("a-select-option", { attrs: { value: item.value } }, [
                        _vm._v(
                          "\n          " +
                            _vm._s(item.label || item.text) +
                            "\n        "
                        )
                      ])
                    ]
                  }),
                  _vm._v(" "),
                  _c("a-icon", {
                    attrs: { slot: "suffixIcon", type: "user" },
                    slot: "suffixIcon"
                  })
                ],
                2
              )
            : _vm.renderScene === "read"
            ? _c(
                "a-select",
                {
                  attrs: {
                    value: _vm.formValue,
                    disabled: true,
                    options: _vm.personnelList
                  }
                },
                [
                  _c("a-icon", {
                    attrs: { slot: "suffixIcon", type: "user" },
                    slot: "suffixIcon"
                  })
                ],
                1
              )
            : _vm.renderScene === "ide"
            ? _c(
                "a-select",
                {
                  attrs: {
                    value: _vm.componentConfig.defaultValue,
                    disabled: _vm.componentConfig.disabled,
                    placeholder: _vm.componentConfig.placeholder || "请输入"
                  }
                },
                [
                  _vm._l(_vm.personnelList, function(item) {
                    return [
                      _c("a-select-option", { attrs: { value: item.value } }, [
                        _vm._v(
                          "\n          " +
                            _vm._s(item.label || item.text) +
                            "\n        "
                        )
                      ])
                    ]
                  }),
                  _vm._v(" "),
                  _c("a-icon", {
                    attrs: { slot: "suffixIcon", type: "user" },
                    slot: "suffixIcon"
                  })
                ],
                2
              )
            : _vm._e()
        ],
        1
      )
    ],
    1
  )
};
var __vue_staticRenderFns__$3 = [];
__vue_render__$3._withStripped = true;

  /* style */
  var __vue_inject_styles__$3 = undefined;
  /* scoped */
  var __vue_scope_id__$3 = undefined;
  /* module identifier */
  var __vue_module_identifier__$3 = undefined;
  /* functional template */
  var __vue_is_functional_template__$3 = false;
  /* style inject */
  
  /* style inject SSR */
  
  /* style inject shadow dom */
  

  
  var __vue_component__$3 = /*#__PURE__*/normalizeComponent(
    { render: __vue_render__$3, staticRenderFns: __vue_staticRenderFns__$3 },
    __vue_inject_styles__$3,
    __vue_script__$3,
    __vue_scope_id__$3,
    __vue_is_functional_template__$3,
    __vue_module_identifier__$3,
    false,
    undefined,
    undefined,
    undefined
  );

__vue_component__$3.install = function (Vue) {
    Vue.component(__vue_component__$3.name, __vue_component__$3);
};

var script$2 = {
    name: "FormOrgSelect",
    mixins: [FormComponentMixin],
    props: {},
    data() {
        this.debounceGetFormOrgList = debounce(this.getFormOrgList, 500);
        return {
            formOrgList: [],
            fetching: false,
            saas: '',
            searchUrl: '/onlcode/saas/org/autoCompleteOrgInfo'
        };
    },
    computed: {},
    created() {
        if (this.$sketon && this.$sketon.APP_CHANEL === 'saas') {
            this.saas = this.$sketon.APP_PROJECT_CODE;
            this.searchUrl = '/mdm/org/autoCompleteOrgInfo';
        } else {
            this.saas = this.$route.query.projectCode;
        }
        this.initEditShowOptions();
    },
    methods: {
        initEditShowOptions() {
            var loadOptions = () => {
                var {extendsfields = {}} = this.formSource.formDataControl.formData;
                if (extendsfields[this.componentConfig.model]) {
                    this.formOrgList = [extendsfields[this.componentConfig.model]];
                }
            };
            this.formSource.formDataControl.loadFormDataAfterFuncList.push(loadOptions);
        },
        handleChange(value, key, target) {
            FormComponentMixin.methods.handleChange.call(this, value, key, target);
            let selectedOption = this.formOrgList.find(val => val.value == value);
            if (selectedOption) {
                if (this.componentConfig.fieldRelatedName) {
                    this.formSource.formDataControl.updateFormData({
                        [this.componentConfig.fieldRelatedName]: selectedOption.orgName || selectedOption.label || selectedOption.text
                    });
                }
                var {extendsfields = {}} = this.formSource.formDataControl.formData;
                this.formSource.formDataControl.updateFormData({
                    extendsfields: {
                        ...extendsfields,
                        [this.componentConfig.model]: selectedOption
                    }
                });
            }
        },
        getFormOrgList(value = '') {
            this.formOrgList = [];
            this.fetching = true;
            manage.postActionAsHeader({
                url: this.searchUrl,
                params: {
                    searchVal: value
                },
                headers: {
                    saas: this.saas
                }
            }).then(res => {
                let {result = [], code} = res;
                if (code == 200) {
                    this.formOrgList = result.map(val => ({
                        ...val,
                        label: `${val.orgName}(${val.orgCode})`,
                        value: val.orgCode
                    }));
                }
                this.fetching = false;
            }).catch(err => {
                console.error(err);
            });
        }
    }
};

/* script */ var __vue_script__$2 = script$2;

/* template */
var __vue_render__$2 = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c(
    "div",
    {
      staticClass: "yly-user-search form-component",
      staticStyle: { width: "100%" }
    },
    [
      _c(
        "proxy-form-item",
        {
          attrs: {
            label: _vm.componentConfig.label,
            componentConfig: _vm.componentConfig,
            promptMessage: _vm.componentConfig.promptMessageContent,
            rules: _vm.componentConfig.rules
          }
        },
        [
          _vm.renderScene === "edit"
            ? _c(
                "a-select",
                _vm._g(
                  _vm._b(
                    {
                      attrs: {
                        showSearch: "",
                        allowClear: "",
                        disabled: _vm.componentConfig.disabled,
                        placeholder: _vm.componentConfig.placeholder || "请输入"
                      },
                      on: {
                        change: function($event) {
                          return _vm.handleChange(
                            $event,
                            _vm.componentConfig.model,
                            _vm.componentConfig
                          )
                        },
                        search: _vm.debounceGetFormOrgList,
                        focus: _vm.getFormOrgList
                      },
                      model: {
                        value: _vm.formValue,
                        callback: function($$v) {
                          _vm.formValue = $$v;
                        },
                        expression: "formValue"
                      }
                    },
                    "a-select",
                    _vm.$attrs,
                    false
                  ),
                  _vm.$listeners
                ),
                [
                  _c("a-spin", {
                    directives: [
                      {
                        name: "show",
                        rawName: "v-show",
                        value: _vm.fetching,
                        expression: "fetching"
                      }
                    ],
                    attrs: { slot: "notFoundContent", size: "small" },
                    slot: "notFoundContent"
                  }),
                  _vm._v(" "),
                  _vm._l(_vm.formOrgList, function(item) {
                    return [
                      _c("a-select-option", { attrs: { value: item.value } }, [
                        _vm._v(
                          "\n          " +
                            _vm._s(item.label || item.text) +
                            "\n        "
                        )
                      ])
                    ]
                  }),
                  _vm._v(" "),
                  _c("a-icon", {
                    attrs: { slot: "suffixIcon", type: "user" },
                    slot: "suffixIcon"
                  })
                ],
                2
              )
            : _vm.renderScene === "read"
            ? _c(
                "a-select",
                {
                  directives: [
                    {
                      name: "decorator",
                      rawName: "v-decorator",
                      value: [_vm.componentConfig.model],
                      expression: "[componentConfig.model]"
                    }
                  ],
                  attrs: { disabled: true, options: _vm.formOrgList }
                },
                [
                  _c("a-icon", {
                    attrs: { slot: "suffixIcon", type: "user" },
                    slot: "suffixIcon"
                  })
                ],
                1
              )
            : _vm.renderScene === "ide"
            ? _c(
                "a-select",
                {
                  attrs: {
                    value: _vm.componentConfig.defaultValue,
                    disabled: _vm.componentConfig.disabled,
                    placeholder: _vm.componentConfig.placeholder || "请输入"
                  }
                },
                [
                  _vm._l(_vm.formOrgList, function(item) {
                    return [
                      _c("a-select-option", { attrs: { value: item.value } }, [
                        _vm._v(
                          "\n          " +
                            _vm._s(item.label || item.text) +
                            "\n        "
                        )
                      ])
                    ]
                  }),
                  _vm._v(" "),
                  _c("a-icon", {
                    attrs: { slot: "suffixIcon", type: "team" },
                    slot: "suffixIcon"
                  })
                ],
                2
              )
            : _vm._e()
        ],
        1
      )
    ],
    1
  )
};
var __vue_staticRenderFns__$2 = [];
__vue_render__$2._withStripped = true;

  /* style */
  var __vue_inject_styles__$2 = undefined;
  /* scoped */
  var __vue_scope_id__$2 = undefined;
  /* module identifier */
  var __vue_module_identifier__$2 = undefined;
  /* functional template */
  var __vue_is_functional_template__$2 = false;
  /* style inject */
  
  /* style inject SSR */
  
  /* style inject shadow dom */
  

  
  var __vue_component__$2 = /*#__PURE__*/normalizeComponent(
    { render: __vue_render__$2, staticRenderFns: __vue_staticRenderFns__$2 },
    __vue_inject_styles__$2,
    __vue_script__$2,
    __vue_scope_id__$2,
    __vue_is_functional_template__$2,
    __vue_module_identifier__$2,
    false,
    undefined,
    undefined,
    undefined
  );

__vue_component__$2.install = function (Vue) {
    Vue.component(__vue_component__$2.name, __vue_component__$2);
};

var script$1 = {
    name: 'FormFileUpload',
    mixins: [FormComponentMixin],
    components: {},
    props: {},
    data() {
        return {
            alreadyUploadFiles: [],
            haveNotUploadedFiles: [],
            uploadBtnLoading: false
        };
    },
    computed: {
        uploadAction() {
            return '/base/commonFile/uploadFiles';
        },
        uploadAccept() {
            return undefined;
        }
    },
    watch: {
        formValue: {
            handler(nelVal, oldVal) {
                if (nelVal !== oldVal) {
                    this.getAlreadyUploadFiles();
                }
            }
        }
    },
    mounted() {},
    methods: {
        beforeUpload(file) {
            if (this.haveNotUploadedFiles.length >= 10) {
                this.$message.warning("上传文件数量过多");
                return false;
            }
            var sameNameFile = this.haveNotUploadedFiles.find(item => item.name === file.name);
            if (sameNameFile) {
                this.$message.warning("该文件已存在");
                return false;
            }
            this.haveNotUploadedFiles.push(file);
            return false;
        },
        handleRemoveFile(file) {
            var index = this.haveNotUploadedFiles.indexOf(file);
            var newFileList = this.haveNotUploadedFiles.slice();
            newFileList.splice(index, 1);
            this.haveNotUploadedFiles = newFileList;
        },
        handleChange(info) {},
        handleUpload() {
            var formData = new FormData();
            this.haveNotUploadedFiles.forEach(file => {
                formData.append('files', file);
            });
            this.uploadBtnLoading = true;
            manage.postActionAsHeader({
                url: this.uploadAction,
                params: formData,
                headers: {
                    'Content-Type': 'multipart/form-data',
                    saas: 'gsc01'
                }
            }).then(res => {
                var formData = {};
                formData[this.componentConfig.model] = res.result.fileId;
                this.formValue = res.result.fileId;
                this.alreadyUploadFiles.splice(0, this, alreadyUploadFiles.length, this.haveNotUploadedFiles);
                this.haveNotUploadedFiles = [];
                this.uploadBtnLoading = false;
            }).catch(err => {
                this.uploadBtnLoading = false;
            });
        },
        getAlreadyUploadFiles() {
            var params = {
                fileId: this.formValue
            };
            if (!params.fileId) {
                return;
            }
            this.$postAction('/base/commonFile/queryFileById', params, {
                saas: 'gsc01'
            }).then(res => {
                this.alreadyUploadFiles.splice(0, this.alreadyUploadFiles.length, ...res.result.map(item => {
                    return {
                        ...item,
                        uid: item.id,
                        name: item.fileName,
                        url: item.filePath,
                        status: 'done',
                        url: item.filePath
                    };
                }));
            });
        },
        handleDownload(fileConfig) {
            var params = {
                id: typeof fileConfig.id === 'string' && fileConfig.id ? fileConfig.id : this.formValue
            };
            if (!params.id) {
                return this.$message.warning('已上传文件为空');
            }
            manage.downloadFile('/base/commonFile/download', fileConfig.fileName, params).then(res => {
                console.log(res);
            });
        }
    }
};

/* script */ var __vue_script__$1 = script$1;
/* template */
var __vue_render__$1 = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c(
    "div",
    { staticClass: "form-upload form-component" },
    [
      _c(
        "a-card",
        { attrs: { title: "附件上传" } },
        [
          _c(
            "a-upload",
            {
              attrs: {
                name: "file",
                accept: _vm.uploadAccept,
                multiple: true,
                "file-list": _vm.haveNotUploadedFiles,
                remove: _vm.handleRemoveFile,
                "before-upload": _vm.beforeUpload
              }
            },
            [
              _c(
                "a-button",
                { attrs: { size: "small" } },
                [
                  _c("a-icon", { attrs: { type: "upload" } }),
                  _vm._v(" " + _vm._s(_vm.$t("选择文件")) + " ")
                ],
                1
              )
            ],
            1
          ),
          _vm._v(" "),
          _c(
            "a-button",
            {
              staticStyle: { "margin-top": "16px" },
              attrs: {
                type: "primary",
                size: "small",
                disabled: _vm.haveNotUploadedFiles.length === 0,
                loading: _vm.uploadBtnLoading
              },
              on: { click: _vm.handleUpload }
            },
            [
              _vm._v(
                "\n      " +
                  _vm._s(
                    _vm.uploadBtnLoading ? _vm.$t("上传中") : _vm.$t("开始上传")
                  ) +
                  "\n    "
              )
            ]
          ),
          _vm._v(" "),
          _vm.haveNotUploadedFiles.length === 0
            ? _c(
                "div",
                {
                  staticClass:
                    "ant-upload-list ant-upload-list-text already-upload-list"
                },
                _vm._l(_vm.alreadyUploadFiles, function(item) {
                  return _c("div", [
                    _c(
                      "div",
                      { staticClass: "upload-list-item-info" },
                      [
                        _c(
                          "span",
                          { staticStyle: { "margin-right": "12px" } },
                          [_vm._v(_vm._s(item.fileName))]
                        ),
                        _c("a-icon", {
                          attrs: { type: "download" },
                          on: {
                            click: function() {
                              return _vm.handleDownload(item)
                            }
                          }
                        })
                      ],
                      1
                    )
                  ])
                }),
                0
              )
            : _vm._e()
        ],
        1
      )
    ],
    1
  )
};
var __vue_staticRenderFns__$1 = [];
__vue_render__$1._withStripped = true;

  /* style */
  var __vue_inject_styles__$1 = undefined;
  /* scoped */
  var __vue_scope_id__$1 = undefined;
  /* module identifier */
  var __vue_module_identifier__$1 = undefined;
  /* functional template */
  var __vue_is_functional_template__$1 = false;
  /* style inject */
  
  /* style inject SSR */
  
  /* style inject shadow dom */
  

  
  var __vue_component__$1 = /*#__PURE__*/normalizeComponent(
    { render: __vue_render__$1, staticRenderFns: __vue_staticRenderFns__$1 },
    __vue_inject_styles__$1,
    __vue_script__$1,
    __vue_scope_id__$1,
    __vue_is_functional_template__$1,
    __vue_module_identifier__$1,
    false,
    undefined,
    undefined,
    undefined
  );

__vue_component__$1.install = function (Vue) {
    Vue.component(__vue_component__$1.name, __vue_component__$1);
};

var script = {
    name: 'FormCustomComponent',
    mixins: [FormComponentMixin],
    props: {
        renderScene: {
            type: String,
            default: ''
        }
    },
    data() {
        return {};
    },
    computed: {},
    mounted() {},
    methods: {}
};

/* script */ var __vue_script__ = script;
/* template */
var __vue_render__ = function() {
  var _vm = this;
  var _h = _vm.$createElement;
  var _c = _vm._self._c || _h;
  return _c("div", { staticClass: "form-component form-custom-component" }, [
    _vm.renderScene === "ide"
      ? _c("div", { staticStyle: { "text-align": "center" } }, [
          _vm._v(_vm._s("自定义组件"))
        ])
      : _c(
          "div",
          [
            _vm.componentConfig.renderComponentName
              ? [
                  _c(_vm.componentConfig.renderComponentName, {
                    tag: "component",
                    attrs: {
                      formSource: _vm.formSource,
                      componentConfig: _vm.componentConfig
                    }
                  })
                ]
              : _vm._e()
          ],
          2
        )
  ])
};
var __vue_staticRenderFns__ = [];
__vue_render__._withStripped = true;

  /* style */
  var __vue_inject_styles__ = undefined;
  /* scoped */
  var __vue_scope_id__ = undefined;
  /* module identifier */
  var __vue_module_identifier__ = undefined;
  /* functional template */
  var __vue_is_functional_template__ = false;
  /* style inject */
  
  /* style inject SSR */
  
  /* style inject shadow dom */
  

  
  var __vue_component__ = /*#__PURE__*/normalizeComponent(
    { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
    __vue_inject_styles__,
    __vue_script__,
    __vue_scope_id__,
    __vue_is_functional_template__,
    __vue_module_identifier__,
    false,
    undefined,
    undefined,
    undefined
  );

var ylyFormComponents = [__vue_component__$A, __vue_component__$z, __vue_component__$y, __vue_component__$x, __vue_component__$v, __vue_component__$u, __vue_component__$t, __vue_component__$s, __vue_component__$r, __vue_component__$q, __vue_component__$p, __vue_component__$o, __vue_component__$m, __vue_component__$l, __vue_component__$k, __vue_component__$j, __vue_component__$i, __vue_component__$h, __vue_component__$g, __vue_component__$f, __vue_component__$d, __vue_component__$e, __vue_component__$9, __vue_component__$6, __vue_component__$5, __vue_component__$4, __vue_component__$3, __vue_component__$2, __vue_component__$1, __vue_component__];
var install = function install(Vue) {
    _forEachInstanceProperty(ylyFormComponents).call(ylyFormComponents, function (ylyComp) {
        Vue.component(ylyComp.name, ylyComp);
    });
};
if (typeof window !== "undefined" && window.Vue) {
    install(window.Vue);
}
var index = _defineProperty({
    version: "1.0.0",
    name: "yly-form-component",
    install: install,
    FormAlertBox: __vue_component__$A,
    FormButton: __vue_component__$z,
    FormCascadeSelect: __vue_component__$y,
    FormCheckBox: __vue_component__$x,
    FormDateSelect: __vue_component__$v,
    FormDividerBox: __vue_component__$u,
    FormDocumentNumber: __vue_component__$t,
    FormNumberInput: __vue_component__$s,
    FormRadioBox: __vue_component__$r,
    FormRateInput: __vue_component__$q,
    FormSliderBox: __vue_component__$p,
    FormStaticText: __vue_component__$o,
    FormSwitchInput: __vue_component__$m,
    FormTable: __vue_component__$l,
    FormTextField: __vue_component__$k,
    FormTextInput: __vue_component__$j,
    FormTextareaInput: __vue_component__$i,
    FormTreeSelect: __vue_component__$h,
    KChangeOption: __vue_component__$g,
    KCheckbox: __vue_component__$f,
    FormSelectInput: __vue_component__$d,
    ProxyFormItem: __vue_component__$e,
    FormAreaSelect: __vue_component__$9,
    FormCard: __vue_component__$6,
    FormGrid: __vue_component__$5,
    FormMyField: __vue_component__$4,
    FormPersonnelSelect: __vue_component__$3,
    FormOrgSelect: __vue_component__$2,
    FormFileUpload: __vue_component__$1
}, "ProxyFormItem", __vue_component__$e);

module.exports = index;
